1. 运行 gc ,生成 pack 文件
$ git gc --prune=now2. 找出最大的三个文件
代码语言:javascript复制$ git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -3
# 输出:
4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 657413784 136436872 5330845
4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 657413784 136436872 5668892
4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 657413784 136436872 63139273. 查看大文件是什么文件
代码语言:javascript复制$ git rev-list --objects --all | grep 4d2ae4c4
# 4d2ae4c4413740d81019aa65691a2f75f00a5d3b 15504.hprof4.移除对该文件的引用(也就是 15504.hprof)
$ git filter-branch --force --index-filter "git rm --cached --ignore-unmatch '15504.hprof'" --prune-empty --tag-name-filter cat -- --all5.进行 repack
$ git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
# 这会清除分支变更历史
$ git reflog expire --expire=now --all
$ git repack -A -d
$ git gc --prune=now
$ git gc --aggressive --prune=now
#检查完整性
$ git fsck --full --unreachable
# 最后push到远程仓库
$ git push --force6.查看 pack 的空间使用情况
$ git count-objects -v


