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

时间:2017-11-05 12:54:03

标签: git git-merge

我想知道何时发生合并冲突。我的假设是,在两个分支中修改文件时都会发生这种情况。更详细地说,如果文件在一个分支中被修改而在另一个分支中没有被修改,则将使用“修改”版本(“旧”版本被“新”版本替换)。

如果有两个“新”版本(来自两个分支),git不知道要使用的版本,因此需要手动合并。

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

2 个答案:

答案 0 :(得分:2)

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

在第一个推动他的变化之后,任何试图推动他的变化的人都会偶然发现合并冲突。

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

有关详情,请参阅此帖子: when exactly does a git merge conflict arise

答案 1 :(得分:1)

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

例如,两个队友分叉了同一个仓库并在其本地分支中进行了修改,并创建了一个拉取请求来掌握。说两者都修改了第10行。

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

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