首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >还原git merge -s ours

还原git merge -s ours
EN

Stack Overflow用户
提问于 2010-07-12 18:14:06
回答 1查看 899关注 0票数 2

我想恢复合并,因为我使用的是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,我今天发现它忽略了我的一个队友所做的一切。

现在,我正在尝试恢复这个合并:

代码语言:javascript
复制
git checkout master
git revert -m 2 c475f0ac

这确实会将合并中忽略的更改(我队友的更改)引入树中。问题是,现在,我的更改不再出现在树中。我已尝试恢复恢复,但没有成功。

对如何恢复这样的合并有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2011-04-12 02:15:00

Revert子命令创建一个新的提交来撤消指定的提交,这对于恢复合并提交来说通常很复杂

您可以将树设置为任何特定提交的状态,搜索合并提交(is c475f0ac ?)然后将树设置为该提交的父状态(请注意命令末尾的点,这一点很重要):

代码语言:javascript
复制
git checkout c475f0ac^ .

如果要将状态设置为提交的不同父对象,则应使用

代码语言:javascript
复制
git checkout c475f0ac^2 .

诸若此类。您将发现gitk命令在继续之前分析提交(选择您想要的提交)很有用:

代码语言:javascript
复制
gitk c475f0ac

在将状态设置为前一次提交后,您可以提交

代码语言:javascript
复制
git commit --message 'restored tree to state previous to merge commit c475f0ac'

然后推送

代码语言:javascript
复制
git push
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3227560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档