写完代码后,我们会使用如下命令提交 commit

git add . //添加所有文件

git commit -m "本功能全部完成"

执行完commit后,如何撤销 commit?

可以执行如下命令进行撤销 commit:

git reset --soft HEAD^

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

至于这几个参数:

–mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset –mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 

–hard
删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

如何撤销 git reset –hard 操作

如果只是想撤销 commit,然后继续修改,但是一不小心执行了git reset –hard,会将 commit 中的所有修改全部删除。

碰到这种情况,不要慌,我们在 Git 上做的任何操作都只是在原来之前的操作上做修改,并且会被记录下来保存,也就是说无论你做了什么,对于Git来说都可以进行回滚操作。

找回Commit,  reflog 就是用来解决这个问题的。简单的说,它会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog 中。

git relog

找到 commit 的节点,然后执行

git reset –hard 98abc5a