将最后一个git提交移动(或"撤消")到非暂存区域

jlb*_*jlb 124 git

什么是移动你的最后git的承诺回到"不改变上演" +"未跟踪文件"方面的最佳方式(只在您的本地回购与提交的问题被不推/,有效地从HEAD删除)?

换句话说,如何回滚提交,但自动将差异应用于未分区?

Ste*_*fan 211

要使用标记为提交的文件

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

否则

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

git reset

(...)这将保留所有已更改的文件"要提交的更改",因为git status会将其设置为.

  • @Dr_Zaszuś,[开始吧](https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified)(说实话,我更喜欢原帖中的图片;-) )。 (2认同)
  • @Dr_Zaszuś,[原文](http://web.archive.org/web/20120511055637/http://git-scm.com/2011/07/11/reset.html)由互联网时光机提供。 (2认同)

Joh*_*ohn 7

git-extras提供了一个git undo命令,它更容易记住做同样的事情(以及其他一些方便的附加功能,顾名思义).