2012-08-09 109 views
3

因此,我将一个分支“badBranch”合并到我的开发分支中,并且在合并之后发现了一些提交错误的提交。git:合并到我合并的

我做了还原:git revert -m 1 <commit hash of the merge>

伟大的工作。时间在继续,编写代码,进一步改变了开发。

现在,有了更多的休闲活动,我想将badBranch重新合并到开发(或开发到它)以查看我是否可以修复它。

但是开发认为badBranch在其历史中(我认为?),所以当我结账badBranch并合并发展到它时,我只是得到了当前的发展状态。

如何强制devleop和badBranch实际合并?

谢谢。

+0

为了记录,这就是'man git-revert'必须说的:“恢复一个合并提交声明**你永远不会希望**合并引入的树更改。因此,稍后合并只会引入不是先前还原合并的祖先的提交所引入的树更改,这可能是也可能不是你想要的“。重点是我的:) – 2012-08-09 20:54:56

回答

0

我不知道这是否会工作,但如果你有什么checkout版badBranch和merge d的发展,然后checkout版开发和badBranch merge d?

6

这是令人惊讶的简单 - 只是恢复该还原:

git revert <commit hash of your merge revert> 

由Marco的HOWTO链接还提供了一个解决方案:重订的badBrahcn与-no-ff重建所有的提交(所有SHA ID将有所不同)并将其合并到主人。

+0

这个HOWTO可能也解释你为什么这是正确的解决方案:http://schacon.github.com/git/howto/revert-a-faulty-merge.txt – 2012-08-09 21:02:14