我试图用 git union merge 来理解一个令人费解的行为。要重现,请从 hello.txt 开始,其中包含:
1
2
3
在另一个提交中,添加一行,例如
1
2
new
3
在原始提交的不同foo
分支中,删除中间行:
1
3
在这里,我希望合并不包含已删除的行,即使使用联合合并也是如此。然而我看到它包含(git merge foo
在主人运行后):
1
2
new
3
所以它忽略了我的行删除。我只是误解了联合合并的工作原理吗?此处的示例回购:https ://github.com/davidebbo/MergeTest
还有一点需要注意:如果不是删除第 2 行,而是删除第 1 行,那么合并会按预期进行,最终结果为:
2
new
3
所以奇怪似乎只发生在标准(非联合)合并下会导致冲突的场景中。