【发布时间】:2011-03-14 17:49:24
【问题描述】:
我想恢复合并,因为我没有使用git merge -s recursive -X ours,而是使用了git merge -s 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
这确实将我合并中忽略的更改(我队友的更改)引入了树。问题是现在,我的更改不再出现在树中。我已尝试还原还原,但没有成功。
关于如何恢复这样的合并有什么建议吗?
【问题讨论】:
-
有没有可能你可以
reset --hardmaster 和 topic 到合并前的状态? -
不完全。合并已被推送。我想我能做的就是恢复与
--no-commit的合并,以便我可以修复更改然后提交恢复。 -
更新。这正是我所做的。使用 --no-commit 还原,修复更改然后提交。当时效果很好。
-
bump @VonC。 @Ionut:恐怕@VonC 从来没有注意到你的回复,因为你没有使用他的@name
-
我不知道 SO 正在使用 @usernames 来通知更改。老实说,我仍然怀疑它确实如此。无论如何,我的评论不是针对@VonC,而是针对遇到此问题的任何人。