ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

恢复git reset --hard origin/master操作后丢失的代码

2020-09-27 15:01:47  阅读:969  来源: 互联网

标签:reset origin git 20 代码 objects 59 x00


点击这里的怕是都和我一样经历了失去代码的心碎。

我的经历是和同事在同一分支下开发,在vscode中提交后发现冲突,不知道点了什么发现一只无法正常提交后百度到这个办法git reset --hard origin/master,然后他的代码拉进来了。我的代码无了!!!!!!

以下是我亲身找回代码的过程

1.在.git/objects下按时间顺序,找到你的最新60条存储到本地仓库的记录

 find .git/objects -type f | xargs ls -lt | sed 60q

 

 

 然后你会看到一串这样的东西,根据同一时间判断你最新提交的东西在哪些文件里面。

2.复制那个文件名 .git/objects/59/dc3e680de898ddc7d4881a0e9832a9a6eef047

放到下面代码中间部分(head -n 20 是输出前20行。你也可以改成9999)

这命令行不明白什么意思的可以去看https://www.jianshu.com/p/918f950fbd58

printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - .git/objects/59/dc3e680de898ddc7d4881a0e9832a9a6eef047 | gunzip 2>/dev/null | sed -z 1d | head -n 20

会发现有的文件是乱码。因为有的是你提交的信息,或者一些图片。

 

 上面就是其中两个文件编码后转换回来的数据。我只要我的vue代码。所以我可以看到哪些文件是我需要的。直接在上面代码后面把 | head -n 20 改成 > 你要生成的文件名

printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - .git/objects/59/dc3e680de898ddc7d4881a0e9832a9a6eef047 | gunzip 2>/dev/null | sed -z 1d > test_demo

然后你就能找到在你项目下的test_demo文件。里面就是你心爱的代码。

下次别再 reset hard了!

 

标签:reset,origin,git,20,代码,objects,59,x00
来源: https://www.cnblogs.com/HDWdemo/p/13739555.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有