ref
https://www.jianshu.com/p/cbd5cd504f14
note
Git reset 命令有三个主要选项:
git reset --soft; git reset --mixed; git reset --hard;
git reset --soft将HEAD引用指向给定提交。索引和工作目录的内容是不变的,在三个命令中对现有版本库状态改动最小。
git reset --mixed(git reset默认的模式)HEAD引用指向给定提交,并且索引内容也跟着改变,工作目录内容不变。这个命令会将索引变成你刚刚暂存该提交全部变化是的状态,会显示工作目录中有什么修改。
git reset --hard HEAD引用指向给定提交,索引内容和工作目录内容都会变给定提交时的状态。也就是在给定提交后所修改的内容都会丢失(新文件会被删除,不在工作目录中的文件恢复,未清除回收站的前提)。
eg:
git reset --mixed HEAD~2