我做了一个提交,但现在很难看到我改变了什么。我当然可以做一个git diff,但我宁愿撤消上一次提交并保持我的所有更改,以便我的IDE(PyCharm)只显示我已经更改了哪些文件。
那么有没有办法撤消上一次提交(真的删除它)但仍保持我的变化?欢迎所有提示!
答案 0 :(得分:10)
这听起来像是git reset --soft
的工作,他的帮助(git help reset
)说明了这一点:
--soft
Does not touch the index file nor the working tree at all
(but resets the head to <commit>, just like all modes do).
This leaves all your changed files "Changes to be
committed", as git status would put it.
因此撤消提交,但文件仍然像以前一样。没有任何东西进入索引。
答案 1 :(得分:9)
我会在其他两个答案中取消--soft
并使用简单的git reset @^
(或旧版本的git中的git reset HEAD^
),默认为{{1} }。不同之处在于软复位会使文件暂存以进行提交,这不是您想要做的事情。如果您确实要撤消提交,则还应该取消更改,这是默认设置。我发现这在一般情况下比软复位更有用,这可能是为什么混合是默认值。
答案 2 :(得分:3)
正如彼得所说,我会选择git reset --soft
,这应该保留你的索引和工作目录。
在您的情况下,如果您想返回1提交,您可以使用git reset --soft HEAD~
将分支指向当前HEAD的父提交;您的索引和工作目录仍将包含您更改的文件。