关于git回退的命令详解
git reset[--soft] HEAD~
撤销上一次的git commit 命令 ,回到HEAD~(HEAD的父节点),并且不会改变索引(index)和工作目录。
git reset [--mixed] HEAD~
撤销上一次的 git commit 命令 ,回到HEAD~(HEAD的父节点),与soft不同的是,他会取消index(暂存区)的东西,彻底回到git add 和git commit 之前,但是工作目录没有变化。
git reset [--hard] HEAD~
与前两种命令类似,也是回到父节点,但是 这个命令撤销了最后的提交、git add 和 git commit 命令以及工作目录中的所有工作。故–hard及其危险,他会真正的销毁数据,在这种特殊情况下,我们的 Git 数据库中的一个提交内还留有该文件的 v3 版本,我们可以通过 reflog 来找回它。但是若该文件还未提交,Git 仍会覆盖它从而导致无法恢复。