Git Merging - 它如何预测要保留哪一段代码?

时间:2014-12-07 04:34:37

标签: git merge git-merge

假设我们正在合并两个分支,那么git如何识别哪一段代码将被省略以及哪一段代码将被保留。

我在某处读到了以下内容

A代表一段代码。 假设在branch-1中删除了这段代码,但是在branch-2中,这段代码保持不变,那么合并这两个分支A将被省略。

我不确切地知道作者试图说什么,要么是作者试图说明合并策略的概念还是实际的合并策略?

这个策略是否由git使用?如果使用它不是一个糟糕的策略,因为省略的代码片段可能与其他一些代码相关。

如果问题很愚蠢,我真的很抱歉,如果有人能回答,那将会很有帮助。

1 个答案:

答案 0 :(得分:0)

补丁方面的Git原因:当您合并两个分支时,生成的提交将是来自两个分支的每个补丁的结果。 (请注意,如果对同一行代码应用不同的修改,则可能会导致合并冲突,只能由人解决)

因此,在您的示例中,只有一项修改已应用于A:它已被删除。因此,生成的合并将不包含A

另一方面,如果branch-1删除Abranch-2更改了它,那么Git会放弃,并产生合并冲突。

  

省略的代码段可能与其他一些代码有关。

确实,如果branch-1删除了未使用的方法f,但branch-2添加了依赖g的方法f,那么Git会认为它是能够合并它们而不会发生冲突,但它会产生一个损坏的代码库。

幸运的是,它很容易面对它:你只需要在推送你的提交之前运行你的非回归测试套装。