有没有一种方法可以使用git plumbing命令来实现git branch --merged的等价物?我知道有像git for-each-ref这样的命令,它可以给你提交哈希值和它们对应的引用名称。有没有一个命令可以告诉一个提交是否可以从另一个提交到达(这基本上是--merged所做的)?
git branch --merged
git for-each-ref
--merged
cnwbcb6i1#
git merge-base --independent X Y Z会告诉你哪些分支还没有合并到另一个分支。另外,git merge-base --is-ancestor X Y会告诉你X是否是Y的祖先,但这是一种实现git branch --merged的低效方法,因为你需要为N个分支运行N^2次。
git merge-base --independent X Y Z
git merge-base --is-ancestor X Y
mm5n2pyu2#
与git branch --merged等效的“管道”使用git for-each-ref。就像这样
git for-each-ref --merged HEAD | cut -f 2 | sed -n '/^refs\/heads\//{s@@@;p}'
如果你想要遥控器的话就改成
git for-each-ref --merged | cut -f 2 | sed -n '/^refs\/remotes\//{s@@@;p}'
2条答案
按热度按时间cnwbcb6i1#
git merge-base --independent X Y Z
会告诉你哪些分支还没有合并到另一个分支。另外,
git merge-base --is-ancestor X Y
会告诉你X是否是Y的祖先,但这是一种实现git branch --merged
的低效方法,因为你需要为N个分支运行N^2次。mm5n2pyu2#
与
git branch --merged
等效的“管道”使用git for-each-ref
。就像这样
如果你想要遥控器的话就改成