Git 误删本地代码恢复

先复习一下本地 git 的三个区域着急的老哥可以直接冲恢复误删文件总结

本地 git 的面貌

git-repo

如图(向廖雪峰老师借的图,0.0)所示,本地有三块区域,工作区、暂存区(stage)和版本区(分支)

注意版本区和版本库的区别,我习惯于把分支称为版本区,可能老哥们有别的习惯,特此提醒,以免误导

git add 就是把工作区的文件加到暂存区git commit 就是把暂存区的文件加到版本区

使用 git status 可以查看暂存区状态

image-20201221205905489

第一种情况是对比远程仓库分支,发现有两个 commit 可以 push

第二种情况是工作区和暂存区更新 NextTest.java,版本区未更新

第三种情况是工作区更新了 NewTest.java,暂存区版本区未更新

第四种情况是工作区新增了 LastTest.java,未添加到缓存区和版本区

值得注意的是,在 idea 中,第二种和第三种情况文件都显示为蓝色,个人认为是因为在工作区修改的文件可以通过 git commit -a 直接绕过暂存区提交到版本区,因此对这两种情况不作区分。但实际上这两种情况是不同的

image-20201221211639024

恢复误删文件

  1. 使用 git status 查看暂存区状态

    image-20201221212259532

    可以发现直接删除文件后删除的文件更新到了暂存区

    这时候就有两种方案: 1. 提交修改,版本回退;2. 清空暂存区,撤销修改

    下面说一下方案2

  2. 使用 git restore --staged <file>... 删除暂存区文件

    image-20201221213031956

  3. 使用 git checkout -- <file>... 检出版本区的文件

总结

方案一:

  1. git commit 提交新版本

  2. git log --oneline 查看上一个版本的版本号

  3. git reset <commitID> 或者 git reset HEAD~1

方案二:

  1. git status查看删除的文件
  2. git restore --staged <file>... 从暂存区移除这些文件
  3. git checkout -- <file>... 撤销修改
原文地址:https://www.cnblogs.com/weirwei/p/14170270.html