git 的撤销修改有五种应用场景
应用场景一
- 工作空间文件已修改,但没有add到缓存区。
解决办法:
- 手动还原已修改的文件。---最原始的方法
- 用版本库中复原工作区的文件
命令:git checkout filepath
应用场景二
- 工作空间已修改,已添加到缓存区,但没有添加到版本库
git reset HEAD filepath //将该filepath对应的缓存区的内容删除掉,对工作区没有任何改动。相当于回到了应用场景1。
再按场景1的方式修改,即手动修改或者是git checkout -- filepath
应用场景3
- 工作空间已修改,已添加到缓存区,且已添加到版本库,但没有推到远程库。
直接按版本回退来处理即可
git reset --hard HEAD^ //回到当前版本的上一个版本
git reset --hard HEAD@{1} //回退到指定版本
应用场景4
- rm -rf误删除某文件的还原(相当于场景1)
rm -rf filepath //在工作目录中误删除某个文件
git checkout -- filepath //将版本库中的文件还原到误删除的文件中。
应用场景5
- git rm误删git文件的还原,并没有commit提交(相当于场景2)
git reset HEAD filepath //将该文件在缓存区的删除操作移除掉
git checkout -- filepath //从缓存区移除对该文件操作后,即可按应用场景4的操作还原。