我在这里遇到了一个小问题:我在Git中有一个特定于问题的分支28s
,我将它合并到了通用的develop
分支中。事实证明我做得太快了,所以我使用git-revert来撤销合并。然而,现在到了将28s
合并到develop
中的时候了,但是git-merge命令看到了原始的merge,并愉快地宣布一切都很好,分支已经合并。我现在该干啥?是否创建'Revert "Revert "28s -> develop"“‘提交?这似乎不是一个好的方法,但我现在想不出有其他的方法。
树结构的外观:
发布于 2013-03-27 04:21:19
让我们假设你有这样的历史
---o---o---o---M---W---x-------x-------*
/
---A---B
其中A、B提交失败,W-是M的还原
因此,在我开始修复发现的问题之前,我会精挑细选地提交给我的分支
git cherry-pick -x W
然后在我的分支上恢复W commit
git revert W
在我可以继续修复之后。
最终的历史可能如下所示:
---o---o---o---M---W---x-------x-------*
/ /
---A---B---W---W`----------C---D
当我发送PR时,它会清楚地显示PR是undo revert,并添加了一些新的提交。
发布于 2018-08-10 05:06:47
要在GIT中还原还原,请执行以下操作:
git revert <commit-hash-of-previous-revert>
发布于 2019-02-28 20:09:48
我建议你按照下面的步骤来恢复,比如SHA1。
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
https://stackoverflow.com/questions/1078146
复制相似问题