1、只有工作空间修改,还没有add到缓存区
git checkout --filepath
直接将版本库中相应的文件覆盖工作区的文件(此时工作空间内容修改,缓存区和本地版本库内容保持一致,覆盖后工作空间、缓存区、本地版本库内容相一致)
2、工作区内容修改并add到缓存区,还没有添加到版本库
git reset HEAD filepath
将filepath对应的缓存区内容回退,和版本库内容一致,对工作区的内容不改动。相当于回到应用场景1.
git checkout --filepath
3、工作区内容改变,add到缓存区并添加到版本库中
git reset --hard HEAD^
回退到上一个版本(工作区、缓存区、版本库均变化)
git reset --hard HEAD@{1}
回退到指定版本(工作区、缓存区、版本库均变化)
4、rm -rf 删除工作区文件的还原
git checkout --filepath
将版本库中的文件还原到误删除的文件中。
5、git rm 删除文件的还原,没有commit到版本库
git reset HEAD filepath
将该文件在缓存区的删除操作移除掉
git checkout – filepath
将版本库中的文件还原到误删除的文件中。