145M = .git/objects/pack/
我编写了一个脚本,从每个分支的末尾向后退,将每个提交及其前一个提交之间的差异大小相加。我得到了129MB的结果,这是未经压缩的,并且没有考虑跨分支相同文件和分支之间的共同历史。
Git会考虑所有这些因素,因此我期望存储库要小得多。那么为什么.git这么大呢?
我已经执行了以下操作:
git fsck --full
git gc --prune=today --aggressive
git repack
关于有多少个文件/提交,我有19个分支,每个分支大约有40个文件。共287次提交,可使用以下命令查找:
git log --oneline --all|wc -l
存储这些信息不应该占用数十兆字节的空间。
git repack -a -d
将我的 956MB 仓库压缩至 250MB。非常成功!谢谢! - AlexGrafedu
可能会误导您认为超级模块很大,而实际上是一个子模块,下面的答案需要在子模块目录中运行。 - esmit