为了找到两个git分支的共同祖先,需要执行以下操作:
git merge-base branch another_branch
好的。但是...如果两个分支已经被合并了怎么办?在这种情况下使用merge-base
命令,我得到的提交是合并之前最新的那一个,而我想知道两个分支在“合并之前”来自哪一个共同的祖先。
换句话说:
Z - A - B - C - D - E - F
\ /
G - H - I
HEAD
在 F 这个提交上。如果我在这个位置运行 git merge-base
命令,我得到的提交是 I
,但是我需要找到的提交是 A 或者 Z。有没有什么 git 命令可以帮助我找到它们呢?
git log --pretty=%P -n 1 D
,而不是git log --pretty=%P -n 1 A
?(否则看起来有点循环...为了找到提交A,我需要首先输入一个涉及提交A的命令...) - PaulJD^
和D^^
引用合并提交D
的两个父提交。因此,这样就变成了git merge-base D^ D^^
。 - pokeD^
和D^2
。 - poke