git查找删除大文件

一、查看哪些历史提交过文件占用空间较大

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

二、删除大文件

git filter-branch –force –index-filter ‘git rm -rf –cached –ignore-unmatch big-file.ipa’ –prune-empty –tag-name-filter cat — –all
// 说明
上面脚本中的big-file.ipa请换成你第一步查出的大文件名,或者这里直接写一个目录。

Cannot rewrite branches: You have unstaged changes

解决方案:执行 :git stash

三、推送修改后的repo

git push origin master –force

四、清理和回收空间

rm -rf .git/refs/original/

git reflog expire –expire=now –all

git gc –prune=now