对工作区中文件的修改分为三种情况:
(1)还没有git add
直接使用git checkout -- 文件
,即可撤销修改,撤销修改就回到和版本库一模一样的样子。
(2)已经git add
先使用git reset HEAD -- 文件
,
然后在使用git checkout -- 文件
进行修改撤销。
(3)已经git add,并再次进行修改
先使用git checkout -- 文件
,文件就会变成添加到暂存区后的状态,也就转换成了“第二种情况”,
然后,在使用情况(2)
中的处理方法,即可将文件恢复到与版本库一致的状态。
总之,记住一点:git checkout -- 文件
命令,撤销的是工作中文件的修改
,
而git reset HEAD -- 文件
命令,撤销的是暂存区中文件的修改
。