使功能分支保持最新状态后合并功能分支时发生Git冲突

使功能分支保持最新状态后合并功能分支时发生Git冲突,git,merge,merge-conflict-resolution,feature-branch,Git,Merge,Merge Conflict Resolution,Feature Branch,git“保持功能分支最新”的解决方案是,不时将主分支合并到功能分支中,例如,如果功能分支需要在主分支中实现更改,正确吗 我做过一次。所以我的历史看起来像: master feature now i want to merge | | | | file needsToBeChangedForNewFeature.php was changed here again | | |/| i get a conflict for each change since this point | | | |

git“保持功能分支最新”的解决方案是,不时将主分支合并到功能分支中,例如,如果功能分支需要在主分支中实现更改,正确吗

我做过一次。所以我的历史看起来像:

master feature

now i want to merge
| |
| | file needsToBeChangedForNewFeature.php was changed here again
| |
|/| i get a conflict for each change since this point
| |
| | file needsToBeChangedForNewFeature.php was changed here
| |
|/
|
现在我想最终将这个特性分支合并到主功能中,但是我在文件“needsToBeChangedForNewFeature.php”中得到了一个冲突,因为每一行都更改了两次(参见git历史记录示例)

在我看来,这似乎是合乎逻辑的,因为git无法决定是保留该文件的半新版本还是真正的新版本

总之:要素分支中文件的旧更改与同一要素分支中同一文件的最新更改相冲突

但我怎样才能避免这种情况呢


非常感谢。

在最终合并之前,master中的功能不应该有任何更改,因此不会有任何冲突(除非有人独立开发其他功能)。从您的描述来看,您似乎以某种方式复制了master中的更改,这是您不应该做的。

一次合并最多只能为您提供一个冲突事件,可能是针对每个文件。在中间合并后的期间内再次执行
是什么意思?谢谢您的快速回答。我已经更新了描述和历史记录示例。希望现在更清楚了。特性和主分支是否都更改了文件
needsToBeChangedForNewFeature.php
?如果是这样,那么你所看到的是正常的,甚至是预期的。你是在进行合并还是重新建立基础?正如Tim所说,合并只会导致一个冲突。它在两个分支中都发生了更改,但主分支中的更改只是因为这个中间合并,而不是因为任何“真正的更改”。这正是我想知道的。