git commit过大文件后恢复代码

前两天git上传代码,不小心将1个多G的模型文件也全部commit了,结果push不成也恢复不了代码。找了好久终于找到了解决方法。

进到仓库目录,启动git bash,依次执行下列命令。

查看pack文件名:

$ ls -l .git/objects/pack/

移出pack文件到当前目录(命令行最后有个点):

$ mv
.git/objects/pack/pack-d4da3e51cfa0c0650e2b3b663d71bb1f8ce4d825.pack .

展开pack文件(会自动展开在.git/objects/目录下):

$ git unpack-objects <
pack-d4da3e51cfa0c0650e2b3b663d71bb1f8ce4d825.pack

回到上一层创建一个recovery目录:

$ mkdir -p …/recovery

把git 库里的 git objects 全部解压到 recovery 目录:

$ find .git/objects/ | while read f; do printf
“\x1f\x8b\x08\x00\x00\x00\x00\x00” | cat - f ∣ g u n z i p 2 > / d e v / n u l l ∣ s e d − z 1 d > . . / r e c o v e r y / f | gunzip 2>/dev/null | sed -z 1d > ../recovery/ fgunzip2>/dev/nullsedz1d>../recovery/(echo $f | cut -s -d/ -f3,4
–output-delimiter="") 2>/dev/null; done

文件已经全部恢复至 recovery目录,但丢失文件名。

可以用Notepad++ 等代码编辑查看器逐个查看筛选。或者

$ grep ‘review-comment-’ -r …/recovery/

根据代码片段搜索位置,其中review-comment-是具体代码片段。

详细解释可看—>摘自:https://ring0.me/2015/05/recover-code-from-corrupt-git-repo/

发布于:2019年11月9日 @ 20:38 ailulu.tech

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值