- 如果修改在工作区还没有add进暂存区,git checkout -- file,其实利用git checkout file 也可以,此时工作区的修改没有了。
- 如果已经add到暂存区还没有commit,git reset HEAD file ,此时暂存区的修改恢复到工作区。
- 如果已提交,git reset --hard HEAD,直接修改commit,所有的修改都没有了。
reset 回退类型
启动reset 可以添加type类型 --soft 、--mixed以及 --hard是三个恢复等级。
- 使用--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西都不变。如果最后的参数为HEAD 会把最近commit的内容会退到暂存区。
- 如果使用--mixed,就将头恢复掉,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的。add的内容也会被回退到工作区。
- --hard,那么一切就全都恢复了,头变,aad的缓存消失,代码什么的也恢复到以前状态。一切都会变化。
HEAD~1 回退一个commit
git reset --hard commitid 回退到任意commitid
git reset --hard HEAD^ 来回退到上一次commit的状态
例子:
-- soft 和 -- hard 就不做试验了。