这里写自定义目录标题
起因
开发过程中,有时可能不知道自己操作了什么,然后写好的代码就被弄丢了(包括已跟踪文件或未跟踪文件)。此笔记记录的方法是通过
对象数据库(.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 看到内容后确定是需要找回的文件就将这个文件导出到本地,然后在放回项目目录中即可
找回的过程稍麻烦一些,不过总比自己在重写一遍要好多了
作者:褚乾
版权归原作者 weixin_43973790 所有, 如有侵权,请联系我们删除。