gpt4 book ai didi

git: 找不到 blob - 想从包中删除它

转载 作者:IT王子 更新时间:2023-10-29 00:47:52 25 4
gpt4 key购买 nike

我有一个大 Blob ,我想摆脱它!我以为我使用此解决方案删除了​​文件: http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/(我使用 -- --all 而不是 HEAD 以便从所有分支中删除文件)

rm -rf .git/refs/original/ && git reflog expire --all &&  
git gc --aggressive --prune

我通过这个 Why is my git repository so big? 查看了 pack 文件夹

$ git verify-pack -v .git/objects/pack/pack-*.idx | sort -k3n
... last 4 lines:
bc7ae9801052180b283cd81880753549f0f92587 blob 19464809 749446 305054873
acd5f09a35846bec25ebc324738139e5caabc50f blob 294278199 71381636 39607483
986d152935434b56cf182d8a32e24cb57af75ac3 blob 480385718 108184804 110989119
ba9d1d27ee64154146b37dfaf42ededecea847e1 blob 761172819 27430741 277589990

脚本 git-find-blob 取自 Which commit has this blob?

$ ./git-find-blob ba9d1d27ee64154146b37dfaf42ededecea847e1

但它没有找到任何东西。

关于如何从我的存储库中删除它的任何想法?

最佳答案

您可以使用 git repack -Ad 强制 git 重建您的包,并将任何无法访问的对象解包为松散的对象。此时可以使用 git gc --prune=now 丢弃无法访问的对象。

您还应该仔细检查您的引用日志是否确实过期。我相信 git reflog expire --all 将默认为 90 天(或对于无法访问的对象为 30 天),因此您可能需要使用 git reflog expire --expire-unreachable=now --all 代替(这需要在 repack+gc 之前完成)。

关于git: 找不到 blob - 想从包中删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com