假设我们正在合并两个分支,那么git如何识别哪一段代码将被省略以及哪一段代码将被保留。
我在某处读到了以下内容
让A
代表一段代码。
假设在branch-1
中删除了这段代码,但是在branch-2
中,这段代码保持不变,那么合并这两个分支A
将被省略。
我不确切地知道作者试图说什么,要么是作者试图说明合并策略的概念还是实际的合并策略?
这个策略是否由git使用?如果使用它不是一个糟糕的策略,因为省略的代码片段可能与其他一些代码相关。
如果问题很愚蠢,我真的很抱歉,如果有人能回答,那将会很有帮助。
答案 0 :(得分:0)
补丁方面的Git原因:当您合并两个分支时,生成的提交将是来自两个分支的每个补丁的结果。 (请注意,如果对同一行代码应用不同的修改,则可能会导致合并冲突,只能由人解决)
因此,在您的示例中,只有一项修改已应用于A
:它已被删除。因此,生成的合并将不包含A
。
另一方面,如果branch-1
删除A
而branch-2
更改了它,那么Git会放弃,并产生合并冲突。
省略的代码段可能与其他一些代码有关。
确实,如果branch-1
删除了未使用的方法f
,但branch-2
添加了依赖g
的方法f
,那么Git会认为它是能够合并它们而不会发生冲突,但它会产生一个损坏的代码库。
幸运的是,它很容易面对它:你只需要在推送你的提交之前运行你的非回归测试套装。