所谓撤销操作,无非就是后悔药。对Git来说,撤销操作主要是以下几块:
- 撤销已经提交的Commit。
- 对已经通过git add加入Stage的文件,进行unstage操作。
- 对已经是Untracked却modified的文件,进行unmodify操作。
以下就针对上述三种情况,分别进行描述:
- 撤销已经提交的Commit。
如果要撤销整个Commit,那么可以使用
$git revert <commit>
注意,git并不是回退HEAD指针,而是生成一个新commit,undo指定commit的修改。这种情况下,commit的记录还存在。
还可以使用:
$git reset HEAD
需要知道的是,git reset比git revert危险的多。
- Unstage操作。
Unstage通常只是需要Unstage指定的文件。
可以使用reset的方法
$git reset HEAD <filename>
- Unmodify 操作。
Unmodify同样也只需要Unmodify指定的文件。
$git clean [-d] -i
选项-d用来指定文件夹。选项-i用来作为交互式操作。
除了上述的方法之外,可以使用checkout来覆盖指定的文件(从一个指定的commit中):
$git check <commit> <file>
是为之记。
Alva Chien
2016.6.29