放弃工作目录下的所有修改:
~~~
$ git reset --hard HEAD
~~~
移除缓存区的所有文件(i.e. 撤销上次`git add`):
~~~
$ git reset HEAD
~~~
放弃某个文件的所有本地修改:
~~~
$ git checkout HEAD <file>
~~~
重置一个提交(通过创建一个截然不同的新提交)
~~~
$ git revert <commit>
~~~
将HEAD重置到指定的版本,并抛弃该版本之后的所有修改:
~~~
$ git reset --hard <commit>
~~~
将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:
~~~
$ git reset <commit>
~~~
将HEAD重置到上一次提交的版本,并保留未提交的本地修改:
~~~
$ git reset --keep <commit>
~~~