2014-09-29 80 views
2

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

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

+1

你不完全清楚你的分支是否是另一个分支的祖先 - 分支只是指向提交的指针,所以将提交视为其他提交的祖先是更有意义的。但是'git branch --contains'可能是你正在寻找的东西('git help branch'获取更多信息)? – twalberg 2014-09-29 15:59:11

回答

4
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,然后由于一些合并结果以B作为A的祖先

相关问题