1、撤销工作区的修改
$ git checkout -- <file_path>
或者
2、撤销暂存区的修改
$ git reset HEAD <file_path>
3、撤销提交
$ git reset --hard <commit_id>
4、回溯一次
$ git reset HEAD~1
5、回溯一百次
$ git reset HEAD~100
reset 的默认参数是 --mixed
–mixed 不会放弃修改,全部(包括暂存区)回溯到工作区,更改还在;任你修改(执行add . 之前的状态,把所有的修改全放回工作区);
–soft 不会放弃更改,会将数据返回到提交之前的暂存区,如仍想提交还可以使用commit 进行提交。(执行commit之前的状态);
–hard 是放弃所有更改,只要目标提交的数据状态(所有区域都是);
2019-03-15 10:15:20 添加
git reset
(1) 不是最新提交,
// 会回滚到这个 版本, 然后基于这个版本下操作:
–soft(add之前的操作,如果新增的撤销操作: rm, 如果修改的撤销操作: checkout – )
–mixed(default,add之后的状态,commit之前)
–hard(delete,全删, rm/checkout 之后的状态)
(2) 是最新提交
// 回滚到add之前的状态
–soft 不会改变
–mixed 回滚到add之前的状态
–hard 删除所有更改