Git合并(冲突)

Git合并(冲突),git,merge,git-merge,Git,Merge,Git Merge,我知道,如果修改文件中的相同行,并尝试合并分支,则会出现合并冲突,因为它不知道保留哪个版本 那么,这是否意味着,如果修改文件中的不同行,git将能够合并它们?这是否也仅适用于添加新行或删除?如果在一个分支中,文件未被修改/未被触及,而在另一个分支中,有人删除了该文件中的几行,该怎么办。如果我们合并分支,git会保留删除吗 谢谢 当两个用户在同一个文件上工作时,通常不会有任何合并冲突,除非他们修改文件中的相同行 这意味着,如果一行在一个分支中被删除,而在另一个分支中保持不变,那么当两个分支合并时,

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

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


谢谢

当两个用户在同一个文件上工作时,通常不会有任何合并冲突,除非他们修改文件中的相同行


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

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

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

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

精确的算法相当复杂,至少比“不一样的线”复杂

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

因此,如果在一个分支中修改一行,而在另一个分支中修改上一行或下一行,尝试合并可能会导致合并冲突。

我认为“合并更改”的可能副本在技术上比“合并分支”更正确,因为Git只找到一个合并基并比较两次提交到该合并基。特别是你可以做
git-checkout-hash1;git merge hash2
对另一个特定提交的合并进行分离头提交。有人可能会说,这是两个匿名分支,因此在某种程度上并不明确,而且在任何情况下都只是细微的区别,你的答案是正确的。:-)