在工作中有时会遇到这样的情况,修改完文件之后,因为各种原因,误操作导致文件本提交,但是还没有push到远端,希望撤回之前的修改,并且将改动保存到暂存区,方便再次修改或贮存操作。
问题截图如下:

使用git log
查看一下日志,截图如下:

解决方法是,使用命令:
1 | $ git reset --soft HEAD^ |
使用上面的命令,可以将刚刚commit的数据撤销回来,改动的数据不会丢失。命令撤销commit的截图:

关掉SourceTree,重新打开,发现commit的状态已经没有了,数据已经恢复到commit之前的状态。

上述命令在使用时是可以加参数的具体参数如下:
1 | HEAD^ // 意思是撤销上一个commit提交,也可以写成 HEAD^1 |
如果commit注释写错了,只是想改一下注释,需要执行以下命令:
1 | $ git commit --amend |
此时会进入默认vim编辑器,修改注释完毕后保存就好了。