究竟是什么导致 git 中的合并冲突?

What exactly does cause merge conflict in git?

我想知道合并冲突到底是什么时候发生的。我的假设是,当一个文件在两个分支中都被修改时,它就会发生。更详细地说,如果一个文件在一个分支中被修改但在另一个分支中没有修改,将使用 "modified" 版本("old" 版本被 "new" 版本替换)。

如果有两个"new"版本(来自两个分支),git不知道用什么版本,需要手动合并。

但是,我不确定我的理解。我可以想象,即使在两个分支中都修改了同一个文件,如果对彼此足够远的地方进行了修改,也不会有合并冲突。

git 当尝试由不同的人修改相同的行并且无法自动合并到分支时发生合并冲突。

例如,两个队友分叉了同一个 repo,并在他们的本地分支中进行了修改,并向 master 创建了一个 pull request。假设第 10 行被两者修改。

如果第一个人的更改已合并到上游,如果第二个人的拉取请求仍处于打开状态,则会显示无法自动合并更改,因为存在合并冲突,因为两个更改都对同一行进行第二个人的分支没有第一个人所做的更改。

在这种情况下,我们必须手动修复合并冲突。请参阅 link https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ 了解如何从命令行手动修复它

当文件中的一行(或多行)被多人同时编辑时引发合并冲突。不一定必须在 2 个不同的分支中。

在第一个推送他的更改后,任何其他尝试推送他的更改的人都会遇到合并冲突。

基本上git系统可以单独处理合并。但在这种情况下,它无法判断哪个版本是正确的,从而引发合并冲突。

有关详细信息,请参阅此 post: