• 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>... 撤销修改
  • 相关阅读:
    sublime插件FileHeader使用,自动的添加模板
    基于aspectj实现AOP操作的两种方式——xml配置
    AOP操作术语
    AOP原理
    maven的常用构建命令
    maven目录结构
    maven环境变量配置
    接口式编程
    mybatis编写流程(老版本的方式,新版本用接口式编程)
    当数据库中的字段与javabean中对应的属性名不同
  • 原文地址:https://www.cnblogs.com/weirwei/p/14170270.html
Copyright © 2020-2023  润新知