Git仓库瘦身指南

参考资料

Git从库中移除已删除大文件
寻找并删除Git记录中的大文件
Git从库中移除已删除大文件

查找大文件方法

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

使用BFG删除GIT的大文件历史记录

BFG是一个清理GIT仓库大文件的利器。BFG下载

使用例子

  • 清理超过20M大小的文件
java -jar bfg-1.13.0.jar --strip-blobs-bigger-than 20M ${仓库地址}
cd ${仓库地址}
git reflog expire --expire=now --all && git gc --prune=now --aggressive
  • 清理文件名是id_rsa或者id_dsa的文件
java -jar bfg-1.13.0.jar --delete-files id_{dsa,rsa} ${仓库地址}
cd ${仓库地址}
git reflog expire --expire=now --all && git gc --prune=now --aggressive
  • 清理文件名是largefolder的文件夹
java -jar bfg-1.13.0.jar --delete-folders largefolder ${仓库地址}
cd ${仓库地址}
git reflog expire --expire=now --all && git gc --prune=now --aggressive