Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Git中检查一个分支是否是另一个分支的祖先_Git - Fatal编程技术网

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

如何在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分支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,然后,由于一些合并,最终以B作为a的祖先。

不完全清楚分支是另一个分支的祖先是什么意思-分支只是指向提交的指针,因此将提交视为其他提交的祖先与否更有意义。但您可能正在寻找的是
git分支--contains
git help branch
了解更多信息)?