git使用之撤销部分修改


修改了文件a、b,假设需要撤销文件a的修改:


情况1:如果没有被git add到索引区
git checkout --a
便可撤销对文件a的修改


情况2:如果被git add到索引区,但没有做git commit提交
1)使用git reset将a从索引区移除(但会保留在工作区)
git reset HEAD a
2)撤销工作区中文件a的修改
git checkout --a


情况3:如果已被git commit提交,则需要先回退当前提交到工作区,然后撤销文件a的修改
1)回退当前提交到工作区
git reset HEAD^
2)撤销工作区中文件a的修改
git checkout --a


灵活使用以上操作的关键在于理解git中工作区、索引区的概念,还要理解 git reset命令hard、mixed(default)、soft三种模式的区别。

参考来源:知乎

https://www.zhihu.com/question/20039839