git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch your_big_file_name' --tag-name-filter cat -- --all
由于之前没有把大文件加入到gitignore,导致大文件被add到本地仓库,之后超过100M,git rm --cached也没有用,因为之前commit的版本里还是包含,此时执行这条命令可以删除历史已提交的大文件。
亲测有效
当出现
Cannot rewrite branches: You have unstaged changes
使用git stash解决