git - 如何在 Git 中检查一个分支是否是另一个分支的祖先

标签 git

我必须 Git 分支 A 和 B。如何检查 A 是否是 B 的祖先,反之亦然?

git merge-base 确实给出了共同的祖先。不过我想知道是否有更好的解决方案。

最佳答案

git merge-base --is-ancestor A B
if [ $? -eq 0 ]
then
   # it's an ancestor
else
   # it's not an ancestor
fi 

这显然是在处理分支指向的提交。 Git 并不像 Clearcase 那样真正跟踪分支谱系,因此很可能您可以先有 A,然后从 B 分支出来,然后由于某些 merge 而最终以 B 作为 A 的祖先.

关于git - 如何在 Git 中检查一个分支是否是另一个分支的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103673/

相关文章:

git - libgit2sharp 中可以进行 merge 吗?

git - 无跟踪推送的用例

git - 我可以在 TortoiseGit 中使用(双点)范围符号进行修订吗?

git - 我可以在 git 中 checkout 树对象吗?

git pull 说是最新的,但 git push 拒绝非快进

git - 你如何在没有 "checking it out"的情况下获取远程分支

git - 恢复 'git push --mirror'后删除的分支

git - 使用 GitHub 将 Spring 应用部署到 Heroku 时获取 "Cannot find git repository in any parent directory"

git - 将更改的文件从功能 merge 到修补程序 git 流

php - "sudo -u www-data git pull"凭证保存?