zoukankan      html  css  js  c++  java
  • 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>... 撤销修改
  • 相关阅读:
    前端工程化浅学
    jQuery学习
    黄金票据和白银票据获取域控权限
    [转]0day零距离
    [转]走近0day
    [转]人生如解 -- 关于破解组织的乱弹
    [转]WAREZ无形帝国
    [转]BSD系统正在死亡?一些安全研究人员这样认为
    Solaris:你好奇的十件事
    Windows和Office激活汇总
  • 原文地址:https://www.cnblogs.com/weirwei/p/14170270.html
Copyright © 2011-2022 走看看