所以我有一个包含三行的简单文件:
some
random
words
第一次合并测试
我从主分支创建了两个不同的分支,文件在本帖顶部处于原始状态。我创建了名为merge1
的分支,将第一行从some
更改为will
。我创建了名为merge2
的分支,将第三行从words
更改为work
。我首先合并merge1
,然后再合并merge2
到主分支中,一切都按预期正常工作。
第二次合并测试
我从主分支创建了两个不同的分支,文件在本帖顶部处于原始状态。我创建了名为merge1
的分支,将第一行从some
更改为doesnt
。我创建了名为merge2
的分支,将第二行从random
更改为work
。我首先合并merge1
,这很好地完成了,但是当我尝试合并merge2
时,出现了意外的冲突错误。
当我打开文件时,看到的是:
<<<<<<< HEAD
doesnt
random
=======
some
work
>>>>>>> merge2
words
我不理解的是为什么merge2显示第一行为
some
,因为merge2没有改变那行。这讽刺的是SVN可以很好地处理这个问题。我错过了什么吗?为什么我可以从同一个提交创建的两个不同分支轻松修改小文件的不同行,但不能更改连续的行?
git config --global merge.conflictstyle diff3
命令。这可能会更有意义。同时请注意,合并是通过应用补丁(类似于Unified Diff格式)来完成的,这意味着在这样一个小的测试中,可能没有足够未改变的上下文行来确定需要更改的内容。 - Will Palmer