Git认为,如果对同一原始源代码行进行不同的更改,则更改会相互冲突
或
如果这两个改变“接触”的边缘。后者的原因是Git不知道
秩序
把它们放进去。
也就是说,假设从同一个空的开始
test.txt
你的
变化是:
+Test 1
Test 1
)以及
变化是:
+Test 2
+Hotfix
Git不知道是先把你的行放在他的两行后面,还是先把他的两行放在你的行后面。
你说他做的事改变了“第三行”。没有3号线。也许最初的空文件实际上是
空白的
行吗?那么
你的
-
+Test 1
也就是说,
去除
测试1
.
伊斯
+Test 2
+Hotfix
(也就是说,
保持
改变
改变
添加和/或删除
线条,这是另一个改变的原因,就像这种冲突一样
无论哪种方式,如果您更改了不同的行或没有“接触”彼此,就不会发生合并冲突。也就是说,假设
text.text
文件读取:
This test file
has several
lines in it.
测试1
顶部
. 他做了一个改变
Test 2
Hotfix
在底部。当Git将文件的三行开头的版本与四行开头的版本和五行开头的版本进行比较时,Git发现
你的
更改是在“第0行”(文件顶部)和第1行之间插入,其更改是在“第4行”(文件底部)之前的第3行之后插入。这些变化
不要
Test 1
This test file
has several
lines in it.
Test 2
Hotfix
想想
合并基
另一种说法是:Git没有将其更改添加到
你的版本
他的版本
文件的。Git正在寻找
合并基
记住,每次提交都会存储每个文件的完整快照。如果Git能找到
任何
二者都
合并基础是“最好的”提交,从中开始的是最接近双方最终结果的提交。因为你们都是从
相同的
承诺,你们两个都有
此文件的版本。因此Git可以运行两个
git diff
操作。一个人发现了什么
你
他
改变。Git的工作是将这两组更改组合起来,并将这些组合的更改应用到
基础
当这些更改影响不同的行并且不重叠时,Git可以自己组合它们。当它们影响到同一行时,或者执行abut时,Git不能单独组合它们。