我有一个 2GB 的 Git 裸仓库,有 30000 个提交。不幸的是,多年来我很早就添加了一些大文件,现在我已经使用 git filter-branch
清理了这些文件 - 参见例如this link .
罪魁祸首的识别 - 参见例如this link
我还使用 git branch -D BRANCH-NAME
清除了许多旧的“测试尝试”分支。现在乐趣开始了:-)
在我的裸仓库中,git gc --aggressive --prune=yes
似乎没有减少裸仓库的目录大小,但是如果我克隆裸仓库并运行 git gc --agressive --prune=yes
然后我的目录大小下降到 50 MB(这真的很好)。
我也试过this nice idea , 但它没有显示 SHA 或任何其他关于在哪里切刀的线索。
我真的可以使用您的意见以系统的方式安全地摆脱我的裸仓库。
最佳答案
这可能是您的命令所缺少的:
git reflog expire --expire=now --all
git gc --aggressive --prune=now
也试试:BFG Repo-Cleaner
https://rtyley.github.io/bfg-repo-cleaner/
关于裸存储库上的 git gc 不清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354367/