method1
git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10获得10条最大文件记录git rev-list --objects --all | grep 0ba0cda99a36fe6dc019309665e7a9cf733ab24f从记录id获取文件名git log --pretty=oneline --branches -- "Comic spiderv1.0.zip"git filter-branch --index-filter 'git rm --cached --ignore-unmatch "Comic spiderv1.0.zip"' -- --all确保每条线删指定文件,这里坑点是文件名有空格,需要双引号包围rm -Rf .git/refs/originalrm -Rf .git/logs/git gcgit prune 一顿操作猛如虎,就靠这4条确切删后续git push --force 强制推 jasoneri SU****du -h --max-depth=1 查看树大小
bug solve
Cannot rewrite branches: You have unstaged changesgit stash
method (remote)
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 你的大文件名' --prune-empty --tag-name-filter cat -- --allrm -rf .git/refs/original/git reflog expire --expire=now --allgit gc --prune=nowgit gc --aggressive --prune=nowgit push origin master --forcegit remote prune origin