Git未提交状态时,找回丢失代码!

文章介绍了在开发过程中如果误删了未跟踪的Git文件,如何通过Git的对象数据库记录找回。步骤包括新建文件,将其添加到暂存区,然后移出并删除,最后在.git/objects目录中搜索并利用gitcat-file-p命令恢复文件内容。
摘要由CSDN通过智能技术生成

起因

开发过程中,有时可能不知道自己操作了什么,然后写好的代码就被弄丢了(包括已跟踪文件或未跟踪文件)。此笔记记录的方法是通过 对象数据库(.git/objects) 目录中的数据记录来找回被弄丢的代码
Tip: .git/objects 这个目录下的数据记录,是在操作过一些 Git 命令后才会产生数据记录,例如 添加到暂存区(git add)拉取(git pull)贮藏(git stash) 等命令

使用场景

项目开发过程中如果是和别人一起开发,基本上都是使用同一个分支,这种情况下如果自己在项目里新建了其它文件并且没有对新建文件跟踪,但是自己又不想对新的文件进行提交,而且又怕不小心把未跟踪的文件弄丢找不回来的情况下,此时就可以通过操作一些 Git 命令,来在 .git/objects 目录下留有一个记录

步骤一

1.1 新建文件:首先在项目中创建一个新的文件然后随便添加一些内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tqbIdS0n-1684316145390)(img/1.png)]

1.2 打开 Git 终端窗口输入命令查看文件状态
输入命令后查看到有两个未跟踪的文件,此时如果删除它们的话就真的没有了,Git 也找不回来了,因为 .git/objects 中还没有记录
在这里插入图片描述

1.3 避免未跟踪的文件被弄丢,此时需要对文件进行一次 Git 操作
这里我操作一下 添加到暂存(git add) 但不 git commit,来使 .git/objects 目录产生记录
在这里插入图片描述

1.4 然后把刚刚添加到暂存区的文件再从暂存区中取出来,之后再把 testFile.vue 这个文件删除掉,再查看一下文件状态
在这里插入图片描述

在这里插入图片描述

1.5 现在项目目录中已经没有 testFile.vue 这个文件了,接下来进入到 .git/objects 目录

步骤二

2.1 开始操作找回代码,打开项目所在的目录
在这里插入图片描述

2.2 进入到 .git > objects 这个目录里
objects 这个目录下的这些子目录中存储的就是操作过的代码,刚才删掉的 testFile.vue 文件应该就在这里
初次进入该目录,目录的内容排序应该是比较乱的,点击 修改日期 使目录按时间倒序排列,你最近操作过的 Git 命令所生成的记录都是离你最近的时间
在这里插入图片描述

2.3 接下来就是从上到下挨个子目录进入挨个的查看
在这里插入图片描述

这里的每一个文件记录的都是操作过的内容,同样直接从最近的时间开始查看
在这里插入图片描述

2.4 通过 git cat-file -p 这个命令可以查看文件的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 看到内容后确定是需要找回的文件就将这个文件导出到本地,然后在放回项目目录中即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

找回的过程稍麻烦一些,不过总比自己在重写一遍要好多了

作者:褚乾

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值