博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

git reset 版本回退 【解释的很清楚】

Posted on 2015-05-02 17:59  bw_0927  阅读(230)  评论(0)    收藏  举报

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只是在【本地】仓库中回退版本,而远程仓库的版本不会变化