重新添加已删除的代码作为合并的一部分

时间:2017-10-25 16:39:56

标签: git git-merge

我有分支A,除其他更改外,还删除了一行代码。

分支A被合并到演示中。所述代码行需要添加回演示。

因此,在分支A上,我重新添加了代码并提交了更改。 但是当我将分支A合并回演示时,代码行不会被添加回演示。

我认为这与分支A没有记录该线路的事实有关,因此它不会重新引入已删除的代码。 作为合并分支A的一部分,如何将已删除的代码重新添加到演示?

2 个答案:

答案 0 :(得分:1)

不应出现您描述的行为。将文件添加到分支并重新合并是一个正确的过程。

Git不知道或不关心你是“重新引入”代码;添加git文件,这本身就是一个变化。因此,具有相同名称和内容的文件之前被删除,或者它们未在分支上进行其他修改或其他任何内容......这一事实无关紧要。你引入了一大堆并不存在的概念,并使你对git的作用变得复杂。

你有

O --- x --- x --- x <--(master)
 \
  A --- B --- C --- D <--(branch)

并且可能A已删除foo/*。你合并了

O --- x -- x --- x -- M <--(master)
 \                   /
  A --- B --- C --- D <--(branch)

现在删除了foo/* M。要解决此问题,请向branch

添加提交
O --- x -- x --- x -- M <--(master)
 \                   /
  A --- B --- C --- D --- E <--(branch)

Efoo/*创建文件。如果将其合并到master

O --- x -- x --- x -- M --- M2 <--(master)
 \                   /     /
  A --- B --- C --- D --- E <--(branch)

合并基础为D。仅检查DEM以生成M2。由于Mfoo/*处不执行任何操作,而Efoo/*处创建文件,M2将获取文件。 D之前的历史并不重要。

这是记录在案的行为,已经为无数用户进行了大量测试,因此我建议您重新检查您的工作,并确保以您描述的方式重新添加和合并。

答案 1 :(得分:-1)

您必须手动编辑它并保存副本,然后再次从代码所在的分支提交复制粘贴到另一个分支使用日志,这样你就可以得到。