2014-10-09 96 views
3

我有两个分支:Master和Feature。撤消主入功能的git合并

我对Master进行了一些更改,并希望将它们复制到Feature中。所以我把Master融入了Feature。很明显,这是错误的做法,因为之前对Feature的更改出现在Master中。

What I expected: 
A - B - - - - E - G [master] 
    \   \ 
     C - D - - F - H [feature] 

What it looks like now: 
         G [master] 
        /
A - B - C - D - E - F - H [feature] 

这里是最有趣的部分:我合并的主进功能注意到这个问题前两次,我做了额外提交到两个分支。如何撤消合并或使其成为Master,不受Feature的提交影响?

+0

这不是答案,而是对未来的建议。不是将'master'合并到'feature'中,而是使用'git rebase'。例如,一旦你在'feature'分支('git checkout feature')上,你就会调用'git rebase master',它会应用'master'中的变化,但是还没有在'feature'中。请参阅[本页](http://git-scm.com/book/ch3-6.html)获取关于合并和重组的更多信息。 – 2014-10-09 17:29:07

+1

您的ASCII图形不清楚/不明确。请阅读[我的答案]顶部的评论(http://stackoverflow.com/questions/25488138/move-initial-commits-off-master-to-another-branch-in-git/25490288#25490288 ),并更正你的图表,所以我们知道你的分支正在指向哪里。 – Jubobs 2014-10-09 17:32:59

+1

@hunch_hunch说这是危险的建议。如果功能分支被推到某个地方而其他人正在使用它呢?重新激活仍然是一项高级功能。首先应该掌握简单的合并。 – musiKk 2014-10-09 17:44:26

回答

0

鉴于您在问题中画出的树,您想撤消对主人提交C,D和F.要完成此操作,请从命令提示符下键入:

git checkout master 
git revert C 
git revert D 
git revert F