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