1、未使用 git add 缓存代码时
栗子1
$ git checkout --<文件名称>
放弃单个文件的修改
栗子2
$ git checkout .
放弃全部文件的修改
注:此命令不会删除新建的文件,因为刚新建的文件还没已有加入到 git 的管理系统中,所以对于git是未知的。自己手动删除就好了
2、已经使用了 git add 缓存了代码
栗子1
$ git reset HEAD <文件名称>
放弃指定文件的缓存
栗子2
$ git reset HEAD .
放弃全部文件缓存
注:此命令用来清除git add的缓存,相当于撤销git add命令,使用本命令后本地修改的文件并不会发生变化,继续使用git checkout命令可放弃修改
3、已经用 git commit 提交了代码
栗子1
$ git reset --hard HEAD^
回退到上一次commit状态
栗子2
$ git reset --hard <commitid>
回退到任意版本
如何查看commitid?
$ git log
如何退出git log?
英文输入法状态下输入“q”即可