所以我有这个简单的文件有3行:
some
random
words
Run Code Online (Sandbox Code Playgroud)
首次合并测试
我创建了两个不同的分支,文件处于原始状态,位于此帖子的顶部.我创建的分支merge1,从改变第一线some来will.我创建分支merge2从改变线3 words至work.我将merge1第一个和merge2第二个合并为master,一切都按预期工作正常.
第二次合并测试
我创建了两个不同的分支,文件处于原始状态,位于此帖子的顶部.我创建的分支merge1,从改变第一线some来doesnt.我创建的分支merge2,从改变2号线random到work.我merge1首先合并,但是当我尝试合并时,merge2我得到了一个我没想到的冲突错误.
当我打开文件时,这就是我所看到的:
<<<<<<< HEAD
doesnt
random
=======
some
work
>>>>>>> merge2
words
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么merge2显示第一行,some因为merge2没有改变那一行.具有讽刺意味的是,SVN处理得很好.
我在这里错过了什么吗?为什么我可以从同一个提交创建2个不同的分支,修改小文件的不同行,但是不能更改连续的行?
基于使用git的一些推测......
根据周围环境跟踪变化.如果你查看merge2的提交的diff,它将看起来像这样:
some
-random
+work
words
Run Code Online (Sandbox Code Playgroud)
当您尝试将其合并到merge1修改的文件中时,它找不到锚点"some".因此,它需要询问您如何继续.而当您修改非连续行时,它仍然可以在文件中找到一些位置来锚定它需要应用的更改.
另外,请记住,git用于跟踪代码更改.合并时往往会谨慎行事,因为最好让用户弄清楚合并,而不是以某种非显而易见的方式自动合并和破坏代码.
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |