如何撤销“git revert head”?

3

我希望能够撤销当前分支的更改,但不进行提交,结果误输入了git revert HEAD命令。之前提交的prev分支更改似乎丢失了?

如何撤销git revert HEAD命令?


可能是重复的问题:如何“取消还原”已还原的Git提交? - Nick Volynkin
4个回答

6

您可以做的事情:

git reset --hard HEAD~1

它会带你到当前 HEAD 之前的提交。

2

如果您在还原提交后没有执行git push,那么Bidhan的答案是正确的。但是,如果您已经推送了,那么您需要通过再次执行git revert HEAD来撤销您的还原。


1

git revert 只会创建一个新的提交。如果你还没有推送它,你可以使用 --keep 来“撤消”它:

 git reset --keep HEAD~1

--keep 会将 HEAD 重置到之前的提交,并保留未提交的本地更改。

 git reset --hard HEAD~1

如果使用 --hard ,会丢弃您工作目录中的所有本地更改。
另一种方法是再次使用 git revert。因为命令 git revert 只是创建一个撤消另一个提交的提交,所以可以再次运行此命令: git revert HEAD 它将撤消您之前的还原并添加另一个提交,但提交消息会变得混乱。

1
git revert HEAD 拯救了我10天的离线工作。非常感谢! - Samuel

0

git reset --keep 是最直接的方法,但我倾向于使用很多 git rebase -i

当交互式弹出编辑器并列出默认情况下未跟踪的远程分支中没有的提交列表时,请删除最后一行,该行应对应还原操作。

您还可以压缩或重新排序行,或停止并编辑旧的提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接