Git 误删本地代码恢复

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

本地 git 的面貌

Git 误删本地代码恢复

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

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

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

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

Git 误删本地代码恢复

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

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

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

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

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

Git 误删本地代码恢复

恢复误删文件

  1. 使用 git status 查看暂存区状态 Git 误删本地代码恢复 可以发现直接删除文件后删除的文件更新到了暂存区 这时候就有两种方案: 1. 提交修改,版本回退;2. 清空暂存区,撤销修改 下面说一下方案2
  2. 使用 git restore --staged <file>...</file> 删除暂存区文件 Git 误删本地代码恢复
  3. 使用 git checkout -- <file>...</file> 检出版本区的文件

总结

方案一:

  1. git commit 提交新版本
  2. git log --oneline 查看上一个版本的版本号
  3. git reset <commitid></commitid> 或者 git reset HEAD~1

方案二:

  1. git status查看删除的文件
  2. git restore --staged <file>...</file> 从暂存区移除这些文件
  3. git checkout -- <file>...</file> 撤销修改

Original: https://www.cnblogs.com/weirwei/p/14170270.html
Author: weirwei
Title: Git 误删本地代码恢复

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591874/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Ceph创建一个新集群 报错: File “/usr/bin/ceph-deploy”, line 18, in……….

    [root@ceph-node1 ceph]# ceph-deploy new node1 Traceback (most recent call last): File &quo…

    数据库 2023年6月14日
    0114
  • MySQL的文件系统(Linux环境)

    /var/lib/mysql/ 可通过以下sql命令查看: mysql> show variables like ‘datadir’; +—————+–…

    数据库 2023年5月24日
    096
  • Javaweb-Http、Maven及Servlet详解

    一、Http 1.什么事Http Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上 文本:html,字符串,~.. 超文本:图片,音乐,视屏,定位,地图…

    数据库 2023年6月16日
    0126
  • 上传代码到GitHub仓库

    上传代码到GitHub仓库 准备工作 意思是自从 21 年 8 月 13 后不再支持用户名密码的方式验证了,需要创建个人访问令牌(personal access token)。 这…

    数据库 2023年6月14日
    0124
  • 删除chrome的域名安全策略

    使用过程中总有特殊情况必须使用http请求、又或者必须使用https请求 目前有两种思路,一种是浏览器默认开了http转https请求,像chrome和Firefox,另一种就是服…

    数据库 2023年6月6日
    0127
  • 在线安装Docker

    安装 yum-utils 包yum install -y yum-utils 设置存储库# 官方地址(比较慢) yum-config-manager \ –add-repo \ …

    数据库 2023年6月14日
    0121
  • canal

    canal 简介 canal 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 canal 工作原理: canal 模拟 MySQL slave 的交互协议…

    数据库 2023年5月24日
    0122
  • 重写Feign编码器

    有个spring cloud 架构的项目需要调用php小组的api接口,但php提供的接口入参大部分是下划线命名,而Java这边的实体类是按照驼峰编写,如果使用Fegin调用会导致…

    数据库 2023年6月6日
    0132
  • 用SkyWalking监控MySQL(一)工具与方案

    本文适用于SkyWalking v9.1.0。 SkyWalking简介 SkyWalking是一个分布式系统的应用程序性能监视(APM)工具,专为微服务、云原生架构和基于容器(K…

    数据库 2023年5月24日
    0131
  • JAVA oa 办公系统模块 设计方案

    1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程 2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起 、自由跳转 3….

    数据库 2023年6月6日
    0116
  • MySQL中实现中文转拼音

    — 插入数据 INSERT INTO t_base_pinyin ( pin_yin_, code_ ) VALUES ( "a", 20319 ),( &q…

    数据库 2023年5月24日
    0106
  • 3. 视图-触发器-存储过程-索引

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    数据库 2023年5月24日
    0117
  • 事务

    事务 *事务的简介 事务是一组操作的集合,这是一个不可分割的工作单元。事务将向整个系统提交或取消操作请求。这些操作只能同时成功和失败。 [En] A transaction is …

    数据库 2023年5月24日
    0145
  • 笔记-docker学习-1

    一、docker安装 1、CentOS Docker安装 安装命令如下: curl -fsSL https://get.docker.com | bash -s docker –…

    数据库 2023年6月9日
    093
  • 如何使用Intellij IDEA工具导入SVN项目

    步骤一:选择VCS 打开Intellij IDEA开发工具,在导航栏中选择 VCS栏位,如图。 步骤二:创建SVN地址 执行步骤二,可以看见打开了一个SVN Repositorie…

    数据库 2023年6月6日
    0111
  • 台湾停电公司竟要求手写代码,网友:就无语

    背景 3月3日上午9点左右,中国台湾省突然毫无预警地大面积停电,高雄市车流量最多的街道里,至少有191处红绿灯不亮,此事严重影响了人民的生活。 不少台湾民众在推特上吐槽,乌克兰战乱…

    数据库 2023年6月9日
    0133
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球