【问题标题】:Git Merging - How does it predict which piece of code are to be kept?Git Merging - 它如何预测要保留哪段代码?
【发布时间】:2015-02-05 00:37:28
【问题描述】:

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

我在某处读到以下内容

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

我不知道作者到底想说什么,要么作者试图说明合并策略的概念,要么它是一个实际的合并策略?

这个策略是被 git 使用的吗?如果使用它不是一个坏策略,因为省略的代码段可能与其他代码段有关。

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

【问题讨论】:

    标签: git merge git-merge


    【解决方案1】:

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

    因此,在您的示例中,仅对 A 应用了一项修改:它已被删除。所以生成的合并不会包含A

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2019-05-29
      • 2019-07-04
      • 1970-01-01
      相关资源
      最近更新 更多