寻找并删除Git记录中的大文件
https://rtyley.github.io/bfg-repo-cleaner/
在删除了项目中的大文件后,git 仓库的大小并没有改变,因为被删除的文件还保存在 git 历史中。
可以通过 git clone --depth=1
的方式,只克隆 git 仓库最近一次的提交。
如果想要彻底清理掉仓库的大文件可以使用下面的方法:
第一种方法
查找大文件
1 | git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" |
重写提交历史
1 | git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch your-file-name' --tag-name-filter cat -- --all |
推送到远程仓库
1 | git push origin --force --all |
第二种方法
使用已有工具 https://rtyley.github.io/bfg-repo-cleaner/
1 | java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git |