2014-10-16 29 views
0

在我们过去的生活中,我们有一个分支系统,它是......不正确的。 我们不得不恢复合并,因为我们决定不发布该功能。你如何重新合并还原的合并

现在我们准备发布该功能,并且我很难弄清楚如何让它们重新融合。

为了跟踪目的,我从前一个分支中创建了一个新分支,并从我们的主线中最新合并。但我一直无法弄清楚如何将它合并回主线。

+0

这是在过去几天其他几个问题的复制 – 2014-10-16 15:16:56

+1

可能重复[在Git中重新执行还原的合并](http://stackoverflow.com/questions/1078146/re-doing-a-reverted -merge-in-git) – 2014-10-16 15:34:34

回答

1

如果在该分支上有干净的工作树,请切换回主线(主?)和git merge <branchname>,或者您可以使用rebase将其他分支的所有更改应用到当前“主线”(主线?)

1

有几种方法可以做到这一点。

  1. 您可以使用git revert上的合并的恢复提交。确保以后的更改不会被覆盖。
  2. 根据功能中更改了哪些文件,您可以使用git checkout从原件中检出文件。然后,您可以执行一次介绍该功能的提交。如果以后的更改将被过去的文件覆盖,这可能会非常棘手。
  3. git cherry-pick提交对功能进行更改的提交。如果只有几个提交,您可以轻松识别该功能,这可以工作。它将创建新的提交,重新引入更改。只要确保您按照正确的顺序应用提交。

无论如何,您需要有一个或多个新的提交以重新引入更改。这不会是重新分支分支的问题。

IMO,最简单的选择可能是第一个。只要确保在推送之前验证本地回购库中的所有内容。这样你可以修改提交而不会造成任何麻烦。

+0

嘿@Schleis我试着#1散列是我的回复,但它给我一个主线是特定的,但提交不是合并? – user3779502 2014-10-16 19:13:45

+0

查看此答案:http://stackoverflow.com/a/10331106/498699 – Schleis 2014-10-16 19:22:05