如何撤消git中的最后一次提交

chi*_*n s 198 git git-revert git-reset git-commit

错误地,我做了git add .并且git commitdevelop分支机构.但幸运的是,我没有这样做git push.

所以我想把它恢复到原始状态.

我试过了git reset --soft,git reset HEAD --hard但看起来我搞砸了.

我该如何解决?我想回到原始状态并可能保持代码更改.

gue*_*ate 474

我觉得你还没搞砸.尝试:

git reset HEAD^
Run Code Online (Sandbox Code Playgroud)

这将使dir在您提交之前处于状态,HEAD^意味着当前提交的父级(您不再需要的那个),同时保持对它的更改(未分级).

  • 再加一个**** (59认同)
  • 在Windows上,插入符号是CMD的一个特殊字符(它用于转义字符,类似于Linux中的反斜杠),因此您最好引用"HEAD ^". (9认同)
  • 这可能是重复的,但这是我90%的时间都想要的过于简单的答案.谢谢 (6认同)
  • 执行此操作后,如果要完全删除未分级的更改,则需要运行以下命令:git reset --hard HEAD (4认同)
  • 不知道为什么这个答案标记为正确.我得到错误抛出`致命:模糊的参数'HEAD ^':未知的修订或路径不在工作树中.使用' - '将路径与修订分开,`不起作用 (2认同)

Alw*_*nny 85

尝试简单地重置上次提交

git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)

  • @Green Windows不喜欢`HEAD~1`,用`git reset --soft"HEAD~1"等引号括起来 (4认同)
  • `fatal: 模棱两可的参数 'HEAD~1': 未知的修订版或路径不在工作树中。使用“--”将路径与修订分开 (3认同)