git仓库代码提交暂存区后precommit失败导致代码丢失的找回办法

之前有一次提交项目代码,代码在被我提交到暂存区并commit了以后,因为有个eslint语法不规范的地方,所以导致了precommit失败。结果不知道什么原因precommit失败之后,暂存区的代码丢失不见了。
因为是在visual studio的可视化git工具上进行的操作,初步怀疑是vs可视化工具的偶发bug,但目前还没有定论,只能是下次多注意了。

当时找回代码花了很大的功夫,特此记录一下,以防下次再发生相同的事情。

  1. 运行这条git指令可以查看暂存区的存储记录,50q即指50条存储记录
    find .git/objects -type f | xargs ls -lt | sed 50q
-r--r--r-- 1 11535 197121 145717 Apr 18 14:28 .git/objects/pack/pack-310de8abea7cf77e922f476d08af276976e90141.pack
-r--r--r-- 1 11535 197121    199 Apr 18 10:44 .git/objects/27/932d820ca56ea3a18db7bb354ddb31c609ad89
-r--r--r-- 1 11535 197121    297 Apr 18 10:44 .git/objects/61/3f24763136d320aaae6b7d9ee60774ec4c4c0f
-r--r--r-- 1 11535 197121    269 Apr 18 10:44 .git/objects/e1/2920ed0ac5adca0737ff7104baeaf82406b5a6
-r--r--r-- 1 11535 197121    579 Apr 18 10:44 .git/objects/2f/f359876c2ea634a150b09b73923c4b295639c7
-r--r--r-- 1 11535 197121    209 Apr 18 10:44 .git/objects/a3/02002c44f54fbf17fd2809f9701111e3215229
-r--r--r-- 1 11535 197121    253 Apr 18 10:43 .git/objects/7e/52b0fff34b6b499f840bdb4303b305bce12784
-r--r--r-- 1 11535 197121    250 Apr 15 11:11 .git/objects/fd/ec9026761dc4da95b21345ed5460c9c7c457a3
-r--r--r-- 1 11535 197121    316 Apr 15 11:11 .git/objects/84/abccab02dbac03f85a93bf1e4f0e48b80dfad9
-r--r--r-- 1 11535 197121    287 Apr 15 11:11 .git/objects/f3/455f7638d79e3ca872662660826210fe2bcb0e
-r--r--r-- 1 11535 197121    316 Apr 15 11:10 .git/objects/53/18dc39e78c0be65a24a32eae390485cef310ff
-r--r--r-- 1 11535 197121    285 Apr 15 11:10 .git/objects/fb/e5ae0acf311f3725d11721004562d257bcc5e8
-r--r--r-- 1 11535 197121    579 Apr 15 11:10 .git/objects/fe/41719e132db401bf50e4ae5713f798d8d1258e
-r--r--r-- 1 11535 197121    368 Apr 15 11:10 .git/objects/ea/ae0126524ddac125958c8b3eb57dda60cd6bd3
-r--r--r-- 1 11535 197121    183 Apr 15 11:10 .git/objects/af/14c6f36e9e06db7e6c46dc2afaab81fec29be0
-r--r--r-- 1 11535 197121    207 Apr 15 11:10 .git/objects/fd/c7d6a2832b811235f50ceb0f6d4babe784fbad
-r--r--r-- 1 11535 197121     90 Apr 15 11:10 .git/objects/0d/974d58e48579d1048a5603c2d5910d1003935c
-r--r--r-- 1 11535 197121    132 Apr 15 11:10 .git/objects/3f/49614e52458959ef7c1ebbaf25657f4cf88112
-r--r--r-- 1 11535 197121   1326 Apr 15 11:10 .git/objects/dc/fba48bf70bfa6d57a592d3f39ac4de2e8354e4
-r--r--r-- 1 11535 197121     51 Apr 15 11:10 .git/objects/f8/b4888565caadc7510be75682268d6c18edd6de
-r--r--r-- 1 11535 197121  10562 Apr 15 11:10 .git/objects/1c/204c0b1be6d61cc67f3d938d1a10749ecea741
-r--r--r-- 1 11535 197121    112 Apr 15 11:10 .git/objects/10/79139251ab422799a6b3a0ef6732b3f9fd5507
-r--r--r-- 1 11535 197121   4579 Apr 15 11:10 .git/objects/de/d414b0c887ee92be71b2b05f7a830204a53f39
-r--r--r-- 1 11535 197121 809613 Apr 15 11:10 .git/objects/dc/aefa271d2ea2a541218c31b3086c2deceb7342
-r--r--r-- 1 11535 197121    279 Apr 15 11:08 .git/objects/38/d2b76b6ad726884dc103365c40aa132d315921
-r--r--r-- 1 11535 197121   2004 Apr 15 11:08 .git/objects/3e/128012ed2fd31d0df7af9bf118330f0523b204
-r--r--r-- 1 11535 197121   2279 Apr 15 11:08 .git/objects/7d/b0660edb46fbf5b38aa543219469a69c3e5fdb
-r--r--r-- 1 11535 197121   1462 Apr 15 11:08 .git/objects/aa/4d4f41030cd8e5d43c71971aa61e9fa613ed0e
-r--r--r-- 1 11535 197121    925 Apr 15 11:08 .git/objects/b8/1c134f6c79c4429239f327a669852a67487866
-r--r--r-- 1 11535 197121    314 Apr 15 11:08 .git/objects/3f/623a8da5f8703b46c74db93a8ee70753eee0fc
-r--r--r-- 1 11535 197121    579 Apr 15 11:08 .git/objects/9a/4d300afd55c0ae45d8b4682f76c269d3ceb2b7
-r--r--r-- 1 11535 197121     92 Apr 15 11:08 .git/objects/d5/f4aedff066a2a16b8d6bc9e7109fe4d2807bcd
-r--r--r-- 1 11535 197121    148 Apr 15 11:08 .git/objects/1a/dd4c8d1e90d21ab531ac094e35405d5bbd5b44
-r--r--r-- 1 11535 197121    286 Apr 15 11:08 .git/objects/26/89d255a9949341bbe6c4d635cc30d9ee3865b5
-r--r--r-- 1 11535 197121    578 Apr 15 11:08 .git/objects/ac/4abeda20ce5979a8440d308eea82535dff89d2
-r--r--r-- 1 11535 197121    368 Apr 15 11:08 .git/objects/20/66001e4f3c4dc70ccbc6063653c381b83f24e3
-r--r--r-- 1 11535 197121     94 Apr 15 11:08 .git/objects/1f/e54a131b730ae44e56c09956ad589b22e1301c
-r--r--r-- 1 11535 197121    183 Apr 15 11:08 .git/objects/0d/92e47eb29fdcb14c9991bb63247d3aeb04c182
-r--r--r-- 1 11535 197121    209 Apr 15 11:08 .git/objects/be/571e0a6a7393dd3e6fc27b43f65ac7b07304a0
-r--r--r-- 1 11535 197121     91 Apr 15 11:08 .git/objects/10/e0e7c25d96f5d116e32e34f2f8bcfaaa80fe2d
-r--r--r-- 1 11535 197121    132 Apr 15 11:08 .git/objects/bc/ece1ae41b161033ca0dcb51e71dbc099786582
-r--r--r-- 1 11535 197121    149 Apr 15 11:08 .git/objects/fe/e8782115050dc644a719f4dc60daf241f4f819
-r--r--r-- 1 11535 197121    266 Apr  6 17:33 .git/objects/30/201459562e1caf25e9a35689084c1483ff23d4
-r--r--r-- 1 11535 197121    579 Apr  6 17:33 .git/objects/b3/9eda3b1f63eefb5848d72681f5028168618b23
-r--r--r-- 1 11535 197121    367 Apr  6 17:33 .git/objects/2a/5c52678edf4e7f51ea388ada82c9fbc3437f3e
-r--r--r-- 1 11535 197121    183 Apr  6 17:33 .git/objects/e8/450ace66ba682524435e7353645247fa4d80ec
-r--r--r-- 1 11535 197121    208 Apr  6 17:33 .git/objects/58/79863a12a1166fb29a511f5f4079f2d102a0a4
-r--r--r-- 1 11535 197121     91 Apr  6 17:33 .git/objects/eb/f57b0c1cbd495899424a949322ca3560ff47fa
-r--r--r-- 1 11535 197121    132 Apr  6 17:33 .git/objects/44/4a0c77c29ba4ee8f6eadb9ebba975a17b1e79d
-r--r--r-- 1 11535 197121   1054 Apr  6 17:33 .git/objects/06/f6d41cb5f0ce3d6a7393b8ee1840cb1e614cd5

  1. 运行这条指令可以生成当时这条暂存区存储记录下存储的代码文件
    git cat-file -p 3f623a8da5f8703b46c74db93a8ee70753eee0fc > ResultFile

(查询记录要去掉斜杠:3f/623a8da5f8703b46c74db93a8ee70753eee0fc => 3f623a8da5f8703b46c74db93a8ee70753eee0fc,ResultFile是生成文件名)

下方为生成文件的目录,然后就根据目录找回相应代码了

040000 tree 58a44df946a00f21776eb99fa7708d08244c1912	components
040000 tree 0dfdf2c8be872885c26edb631ec90621bfd0401d	items
040000 tree f0c34b2dc62b2a62cef1fe23244a66c9a2e63756	lists
100644 blob 4c3d216c489cf6604ea0c20b66f52227a83889e0	model.js
100644 blob 11207e37882d26b202a053abfc908bb5369b0979	service.js
040000 tree 10e0e7c25d96f5d116e32e34f2f8bcfaaa80fe2d	tasks
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值