2014-09-29 28 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的祖先

相關問題