2012-11-06 195 views
4

我最近有一种情况,我将功能分支的更改合并到主分支和生产分支中。然后我需要从生产分支中删除更改,因此我使用git还原。我现在需要将这些修改合并到生产分支,但如果我执行混帐合并SHA1我收到消息:如何合并已恢复的提交?

Already up-to-date

谁能帮助我?

UPDATE 所以我结束了创建了我的分公司生产的一个分支,从我在那支已经恢复,然后合并这种改变投产文件应用差异。我不喜欢它,但它工作。我仍然有兴趣听到是否有办法使用相同的sha1。

+0

您是否尝试过'git cherry-pick'呢? –

+0

刚刚尝试过,樱桃挑选也没有工作。 –

+0

樱桃挑选似乎为我工作。稍微更多的手动等价物将是'git format-patch $ SHA1' - >写入0001-description.patch。接下来是'git am 0001-description.patch'或'git apply ...',然后提交,或者甚至是'patch -p1 ...'(位于回购的顶层)。 – sourcejedi

回答

0

我现在需要将这些修改合并到生产分支

git revert,如果在production分支完成后,将创造一个新的提交取消您想删除一个。

由于新提交已经在该分支上('production'),因此无法合并它。

如果你的意思是“合并回feature分支”,那么合并您应用新提交的feature分支,删除从feature分支的变化也是如此。

+0

您好VonC,我实际上需要将我的主分支中的提交合并到我的生产分支中,但是因为我已将功能分支合并到生产和主分支中。问题是,我认为这个提交在master和production中,但是生产具有更新的“revert commit”,所以我的更改没有被应用。有任何想法吗? –

+0

@akiladila“我的变化”?哪些变化?它们都在'master'和'prod'中,所以将'master'合并为'prod'(即使'prod'没有任何额外的提交)将始终产生一个“已经最新”的消息。然而,将'prod'合并为'master'应该可以很好地工作。 – VonC