版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaosongluo/article/details/84194792
起因
晚上一到家就听同事说,git仓库拉不下来了,于是VPN上去看了一下:
哎,肯定是哪位大爷又在作妖了,后悔当初没有设置单文件大小。不过事情已经发生,当务之急肯定是如何解决问题,消除影响。
命令式解决方案
Step 0:查看空间占用
git count-objects -v # 查看 git 相关文件占用的空间
du -sh .git # 查看 .git 文件夹占用磁盘空间
Step 1:找到仓库记录中的大文件
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
Step 2:重写这些大文件涉及到的所有提交
git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch {your-file-name}' --tag-name-filter cat -- --all
Step 3:同步远程仓库
git push origin --force --all
工具式解决方案
如果不喜欢敲命令,还有一个工具可用:https://rtyley.github.io/bfg-repo-cleaner/