我想恢复合并,因为我使用的是git merge -s ours,而不是git merge -s recursive -X ours。
我读过关于恢复合并的this blog post,但它似乎不适用于我的情况。
因此,我有master分支,然后是topic分支。在某种程度上,我将master合并为topic,然后将topic合并为master。当我将master合并到branch中时,我在一个文件上有一个冲突,但我认为它不会做任何重要的事情,所以我想我应该使用git跳过它,并使用我的版本。就在那时,我使用了git merge -s ours,而不是git merge -s recursive -X ours,我今天发现它忽略了我的一个队友所做的一切。
现在,我正在尝试恢复这个合并:
git checkout master
git revert -m 2 c475f0ac这确实会将合并中忽略的更改(我队友的更改)引入树中。问题是,现在,我的更改不再出现在树中。我已尝试恢复恢复,但没有成功。
对如何恢复这样的合并有什么建议吗?
发布于 2011-04-12 02:15:00
Revert子命令创建一个新的提交来撤消指定的提交,这对于恢复合并提交来说通常很复杂
您可以将树设置为任何特定提交的状态,搜索合并提交(is c475f0ac ?)然后将树设置为该提交的父状态(请注意命令末尾的点,这一点很重要):
git checkout c475f0ac^ .如果要将状态设置为提交的不同父对象,则应使用
git checkout c475f0ac^2 .诸若此类。您将发现gitk命令在继续之前分析提交(选择您想要的提交)很有用:
gitk c475f0ac在将状态设置为前一次提交后,您可以提交
git commit --message 'restored tree to state previous to merge commit c475f0ac'然后推送
git pushhttps://stackoverflow.com/questions/3227560
复制相似问题