如何在Git中检查一个分支是否是另一个分支的祖先
我必须检查Git分支A和B。如何检查A是否是B的祖先,或者反之亦然如何在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那样跟踪分支谱系,所以很有可能先有一个分支,然后再分支出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那样跟踪分支谱系,所以很有可能先有一个分支,然后再分支出B,然后,由于一些合并,最终以B作为a的祖先。不完全清楚分支是另一个分支的祖先是什么意思-分支只是指向提交的指针,因此将提交视为其他提交的祖先与否更有意义。但您可能正在寻找的是
git分支--contains
(git help branch
了解更多信息)?