这是我目前的情况。
我错误地合并了一个包含垃圾的pull请求。
所以我用git revert -m 1 <sha of commit>
还原了它
现在我希望撤消该恢复,但这次只选择正确的更改。
请问我该怎么做?
感谢
在git中还原也是一种提交。因此,您可以简单地恢复恢复为常规提交:
git revert <revert_you_want_to_undo_sha1>
您可以使用git reset
来删除错误的提交(包括恢复)。
假设你的历史看起来像:
good -> good -> good -> rubbish -> revertRubbish
你可以简单地git reset HEAD~2
使您的版本历史看起来像:
good -> good -> good
说,如果它比这更复杂
good1 -> good2 -> rubbish -> good3 -> good4 -> revertGood4 -> revertGood3 -> revertRubbish
你可能需要做一些类似的事情:
git reset HEAD~6 //Deletes last 6 commits
git cherry-pick good3
git cherry-pick good4
以及由此产生的历史
good1 -> good2 -> good3* -> good4*
星号表示代码更改将是相同的,只是使用了与原始提交不同的哈希。