git分支--merged using plumbing命令

mrfwxfqh  于 2023-06-04  发布在  Git
关注(0)|答案(2)|浏览(187)

有没有一种方法可以使用git plumbing命令来实现git branch --merged的等价物?
我知道有像git for-each-ref这样的命令,它可以给你提交哈希值和它们对应的引用名称。有没有一个命令可以告诉一个提交是否可以从另一个提交到达(这基本上是--merged所做的)?

cnwbcb6i

cnwbcb6i1#

git merge-base --independent X Y Z会告诉你哪些分支还没有合并到另一个分支。
另外,git merge-base --is-ancestor X Y会告诉你X是否是Y的祖先,但这是一种实现git branch --merged的低效方法,因为你需要为N个分支运行N^2次。

mm5n2pyu

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}'

相关问题