一、查看哪些历史提交过文件占用空间较大
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
