合并(冲突)

时间:2017-03-04 17:08:54

标签: git merge git-merge

我知道如果您修改文件中的相同行并尝试合并分支,则会发生合并冲突,因为它不知道要保留哪个版本。

那么,这是否意味着如果您修改文件中的不同行,git是否能够合并它们?这仅适用于添加新行还是删除?如果在一个分支中,文件未经修改/未被修改,而在另一个分支中,有人删除该文件中的几行。如果我们合并分支,git会保留删除吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

Git不合并文件。它合并了变化。

嗯,从技术上讲,它会合并分支,但如果我们考虑单个文件,它会合并在这些分支上引入的更改。

因此,正如你所说,如果你在一个分支中我们没有修改过文件,而在另一个分支中我们删除了文件的某些行,如果你合并,那么是的,删除将被保留并合并。也就是说,最终合并的文件也将删除这些行。

确切的算法非常复杂,至少比“不相同的行”更复杂。

例如,合并算法需要识别变更的上下文,为了做到这一点,它将需要周围没有变化的行。

因此,如果在一个分支中修改单个行,而在另一个分支中修改上一行或下一行,则尝试合并可能最终会出现合并冲突。

答案 1 :(得分:0)

当两个用户处理同一个文件时,除非他们修改文件中的相同行,否则通常不会发生任何合并冲突。

这意味着如果在一个分支中删除一行而在另一个分支中保持不变,则当合并两个分支时,将保留删除。