移动(或“撤销”)最后一个git提交到未上演的区域

什么是最好的方法移动你的最后一个git提交回到“更改不staging”+“Untracked files”区域(有问题的提交不推送/只在你的本地回购,有效地从HEAD中删除它)?

换句话说,如何回滚提交,但自动将该差异应用到未登台的区域?

95577 次浏览

你可以使用git reset将当前分支设置为前一次提交,即HEAD^

git reset HEAD^

添加--soft将使这些文件保存在指数:(准备提交)

git reset --soft HEAD^

--soft

(…)这将使你所有更改的文件“Changes to be committed”,就像git状态所显示的那样。

git-extras提供了一个git undo命令,这是一种更容易记住的做同样事情的方式(以及许多其他方便的额外功能,顾名思义)。