git合并基是可交换的吗?

git合并基是可交换的吗?,git,Git,考虑 $ git merge-base <original-branch> <new-branch> 如果只有一个合并基,则为“是”。 意思是:git merge base--all只返回一个提交 但是,正如报告中提到的: 当历史涉及交叉合并时,两次提交可以有多个最佳共同祖先。 例如,使用此拓扑: 1和2都是A和B的合并基。两者都不比另一个好(两者都是最佳合并基础)。 当未给出--all选项时,未指定输出的最佳选项 我不确定,但既然可以有多个合并基,我想答案是否定的。请

考虑

$ git merge-base <original-branch> <new-branch>

如果只有一个合并基,则为“是”。
意思是:
git merge base--all
只返回一个提交

但是,正如报告中提到的:

当历史涉及交叉合并时,两次提交可以有多个最佳共同祖先。
例如,使用此拓扑:

1和2都是
A
B
的合并基。两者都不比另一个好(两者都是最佳合并基础)。
当未给出
--all
选项时,未指定输出的最佳选项


我不确定,但既然可以有多个合并基,我想答案是否定的。请参阅Christopher的伟大答案:简而言之,
git merge base
可能恰好是可交换的,但该命令的规范没有提供这样的保证。
$ git merge-base <new-branch> <original-branch>
---1---o---A
\ /
 X
/ \
---2---o---o---B