1

我有一个base带有名为的文件的基本分支base.md(为了理解,我添加了行号):

1:
2:
3: b

然后我签出一个新分支feat并编辑base.md如下:

1:
2:
3: b
4: 
5: c

我添加了一个 commit feat-1。然后我回到分支base并编辑base.md

1: a
2:
3: b
4:

添加提交后base-1,我想合并(使用--conflict=diff3featbase但发生合并冲突:

01: a
02:
03: <<<<<<< ours
04: b
05: ||||||| base
06:
07: b
08: =======
09:
10: b
11:
12: c
13: >>>>>>> theirs
14:

您可以看到b位于第 3 行ours(Current Change)但在第 4行的字符theirs(Incoming Change)和合并基础。实际上,b位于feat分支或合并基地的第 3 行。

如果我接受当前的更改,那就没问题了。但是如果传入的更改,文件将更改为:

1: a
2:
3:
4: b
5:
6: c
7:

直觉上,我认为应该没有冲突,并且更改(行c)附加到末尾。

那么为什么会这样呢?在这种情况下,git如何计算冲突?

4

0 回答 0