我想放弃当前分支中的更改而不提交,我不小心输入了命令git revert HEAD
。 prev分支(早先提交)的变化似乎丢失了?
如何撤消git revert HEAD
命令?
答案 0 :(得分:6)
你可以做到
git reset --hard HEAD~1
它会将您带到当前HEAD之前的提交。
答案 1 :(得分:2)
如果你在恢复提交后没有做git push
,那么Bidhan的回答就是现实。但是,如果您从那时起推送,则只需再次执行git revert HEAD
即可恢复还原。
答案 2 :(得分:1)
git revert
只是创建一个新提交。如果你没有推动它,你可以撤消"它使用--keep
:
git reset --keep HEAD~1
--keep
会将HEAD重置为先前的提交并保留未提交的本地更改。
git reset --hard HEAD~1
如果使用 --hard
,则会丢弃工作目录中的所有本地更改。
另一种方式是再次使用git revert
。由于命令git revert
只是创建一个撤消另一个的提交,因此您可以再次运行此命令:
git revert HEAD
它会撤消您之前的恢复并为此添加另一个提交,尽管提交消息会变得更加混乱。
答案 3 :(得分:0)
git reset --keep
是最直接的做法,但我倾向于做很多git rebase -i
。
当交互式弹出编辑器时,提示列表不在(默认情况下)跟踪的远程分支中,删除最后一行,该行应该是与还原相对应的行。
您也可以压缩或重新排序这些行,或者停止并编辑旧的提交。