使用 Git,我如何判断我的分支中的一个提交是否是另一个提交的后代?
如果您想以编程方式检查(例如在脚本中),您可以检查是否git merge-base A B等于git rev-parse --verify A(则 A 可从 B 到达),或者是否相等git rev-parse --verify B(则 B 可从 A 到达)。 git rev- parse此处需要将提交名称转换为提交 SHA-1 / 提交 ID。
git merge-base A B
git rev-parse --verify A
git rev-parse --verify B
git rev- parse
编辑: 在现代 Git 中,以git merge-base --is-ancestor.
git merge-base --is-ancestor
如果您询问的提交之一是 分支提示 ,那么git branch --contains <commit>或者git branch --merged <commit>可能是更好的非编程解决方案。
git branch --contains <commit>
git branch --merged <commit>