我一直在阅读“git merge-base”手册,但是我不明白多个合并基础是如何产生的。特别地,我卡在了手册中以下插图上:
When the history involves criss-cross merges, there can be more than one best common
ancestor for two commits. For example, with this topology:
---1---o---A
\ /
X
/ \
---2---o---o---B
both 1 and 2 are merge-bases of A and B. Neither one is better than the other (both
are best merge bases). When the --all option is not given, it is unspecified which
best one is output.
我真的无法理解如何会出现这样的情况。我尝试使用测试存储库重新创建分支之间的这种交叉合并情况,但我无法复制它。在所有情况下,我总是最终得到一个合并提交,A和B都指向它(而不是像图表所示的那样指向独立的合并提交)。
有人能说明一下这种情况是如何产生的吗? 这是常见情况还是错误情况?