我有一个本地唯一的存储库,它过去包含非常大的文件(扫描和一些数据库文件)。在某种程度上,我决定删除包含所有这些内容的目录,并重写历史以清除有问题的目录。
我最终得到了一个非常轻量级的存储库,但是.git目录仍然占用了1.3G的空间。只有一个包,我在这个包中至少识别了一个斑点,占用了很多空间。
我尝试了很多方法来清理存储库,包括各种git的调用,但都不起作用,甚至git forget-blob也不行。Git forget-blob告诉我“在repo历史记录中找不到”。
在这一点上,我迷失了方向。感谢您的帮助。
谢谢!
编辑:一些我觉得非常奇怪的附加信息。Git verify-pack向我展示了3个非常大的文件:
git verify-pack -v .git/objects/pack/pack-5cc03e9fbdbdff4ce1bbeb43c55c3e17875f2bd7.idx| sort -k 3 -n | tail -3
4983118ae60be35299b153dc5850134329f6ddf0 blob 7336960 2000979 615935480
5c810dfffa6a033631596218c43a7360cf2aff10 blob 12455669 1197771 6330554
25012927d95cf3bd15f2a8cb30da2c4f4b988e82 blob 105476096 83834099 532101381但是,我无法获得有关这些斑点的任何信息。这怎么可能呢?
git rev-list --objects --all | grep 250129
zsh: done git rev-list --objects --all |
zsh: exit 1 grep --color 250129发布于 2017-03-20 23:29:06
需要考虑的事情有很多:
为了说服git删除一个对象,不应该有指向它的指针。另一件要考虑的事情是,对象保存在“包”中。我记得有一次我不得不“分解”我所有的包文件(也就是说,让git把所有的对象放到文件系统上),然后删除包文件,然后让git重新打包。
https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery
检查关于“删除对象”的部分。希望这已经足够好了。
https://stackoverflow.com/questions/42906491
复制相似问题