git恢复blob文件

由于本人的一次不小心的操作,在本地仓库中执行add操作后,又执行了reset操作,导致本地的代码全部删除。痛心疾首,还是想想怎么恢复自己删除的代码吧。

通过翻阅资料,这种情况是可以找回自己的代码的,只是过程比较麻烦,特此记录下操作步骤。

模拟下出现的场景

1、首先创建一个新的目录 并执行初始化命令,初始化一个新的仓库
git init
2、执行添加命令,把代码添加到仓库中
git add
3、执行回滚命令把添加到仓库的代码进行回滚
git reset HEAD
通过上面的一通操作,你会发现自己辛辛苦苦写的代码,竟然全没了。因为咱们没有提交记录,所以通过git的回滚上一版本的操作是找不回代码的。难道,被删除的代码真的找不回来了么?答案是:可以的。虽然过程有点复杂,起码比重新写还是容易些

操作步骤

1、执行fsck(文件系统检测)命令
git fsck --lost-found
这个命令会把悬空的blob恢复文件列举出来,效果如下:

Checking object directories: 100% (256/256), done.
notice: HEAD points to an unborn branch (master)
notice: No default references
dangling blob 7f6fdedda1e7c65c5525a7b7d41956ad9b669b37
dangling blob 040f0623d8d04376f62265ad7af53ce7f5cc75f9

2、这时你可以通过git show 7f6fdedda1e7c65c5525a7b7d41956ad9b669b37 命令查看当前哈希值对象的具体内容

<head>
<jsp:directive.include
        file="/WEB-INF/jsp/prelude/include-head-meta.jspf" />
<title>My Home Page</title>
</head>
<body>
        <div class="container-lg">
                <!-- Content here -->
                Hello,World 2021
        </div>
</body>

这样咱们就可以看到丢失的代码了
3、把丢失的代码拷贝到文件中
执行命令git cat-file -p 7f6fdedda1e7c65c5525a7b7d41956ad9b669b37 > index.jsp
然后咱们就可以看到丢失的代码会重新回到index.jsp文件中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容