首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Git中重新执行恢复的合并

在Git中重新执行恢复的合并
EN

Stack Overflow用户
提问于 2009-07-03 07:15:28
回答 4查看 139.1K关注 0票数 290

我在这里遇到了一个小问题:我在Git中有一个特定于问题的分支28s,我将它合并到了通用的develop分支中。事实证明我做得太快了,所以我使用git-revert来撤销合并。然而,现在到了将28s合并到develop中的时候了,但是git-merge命令看到了原始的merge,并愉快地宣布一切都很好,分支已经合并。我现在该干啥?是否创建'Revert "Revert "28s -> develop"“‘提交?这似乎不是一个好的方法,但我现在想不出有其他的方法。

树结构的外观:

EN

回答 4

Stack Overflow用户

发布于 2013-03-27 04:21:19

让我们假设你有这样的历史

代码语言:javascript
复制
---o---o---o---M---W---x-------x-------*
              /                      
      ---A---B

其中A、B提交失败,W-是M的还原

因此,在我开始修复发现的问题之前,我会精挑细选地提交给我的分支

代码语言:javascript
复制
git cherry-pick -x W

然后在我的分支上恢复W commit

代码语言:javascript
复制
git revert W 

在我可以继续修复之后。

最终的历史可能如下所示:

代码语言:javascript
复制
---o---o---o---M---W---x-------x-------*
              /                       /     
      ---A---B---W---W`----------C---D

当我发送PR时,它会清楚地显示PR是undo revert,并添加了一些新的提交。

票数 71
EN

Stack Overflow用户

发布于 2018-08-10 05:06:47

要在GIT中还原还原,请执行以下操作:

代码语言:javascript
复制
git revert <commit-hash-of-previous-revert>
票数 18
EN

Stack Overflow用户

发布于 2019-02-28 20:09:48

我建议你按照下面的步骤来恢复,比如SHA1。

代码语言:javascript
复制
git checkout develop #go to develop branch
git pull             #get the latest from remote/develop branch
git branch users/yourname/revertOfSHA1 #having HEAD referring to develop
git checkout users/yourname/revertOfSHA1 #checkout the newly created branch
git log --oneline --graph --decorate #find the SHA of the revert in the history, say SHA1
git revert SHA1
git push --set-upstream origin users/yourname/revertOfSHA1 #push the changes to remote

现在为分支users/yourname/revertOfSHA1创建PR

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1078146

复制
相关文章

相似问题

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