1 | git gc --prune=now |
找出最大的三个文件1git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -3
查看大文件1git rev-list --objects --all | grep c43a8da
移除对大文件的引用1git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 'data/bigfile'" --prune-empty --tag-name-filter cat -- --all
repack1git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin2git reflog expire --expire=now --all3git gc --prune=now
查看pack的空间使用情况1git count-objects -v
如果不止一个人使用仓库,需要其他成员删除本地库并重新 clone 远端的库,同时以上操作后不应有其他人 push 到远端,否则白忙活
参考资料: