http://www.cnblogs.com/my_life/articles/4441803.html
git reflog —all
git reset 用来修改HEAD指针
默认是—-mixed : log 记录会消失,被撤销内容在working tree,可用git diff查看。 git diff —cached显示为空
git reset —-soft commitID 效果等同于git reset —-mixed后又进行了一个git add。 所以reset之后,git diff显示为空,git diff —cached可看到修改。
git reset —-hard 之后,git diff 和git diff —cached都为空。 文件直接被改变了
-------------------
如果发现多commit一个文件
- git commit --amend
- git会提示你使用 "git reset HEAD^1 <file>..." to unstage
来回退特定的某个文件
完成后再次commit --amend
=======
git reset HEAD^ 会把上次的提交都撤销,修改内容在working tree
git reset只是在【本地】仓库中回退版本,而远程仓库的版本不会变化