1.查找要清理的文件

git rev-list --objects --all | grep "清理的文件关键字"

2.删除历史记录

git log --pretty=oneline --branches -- 文件或者目录

3.重写所有 commit,将该文件从 Git 历史中完全移除

git filter-branch --index-filter 'git rm --cached --ignore-unmatch 文件或者目录' -- --all

4.引用完全删除

rm -Rf .git/refs/original //删除git的备份
rm -Rf .git/logs/ // 删除logs
git gc //收集所有松散对象并将它们存入 packfile(垃圾回收)
git prune //删除所有过期的、不可达的且未被打包的松散对象

5.删除之后,需要以强制覆盖的形式提交上去

git push origin 分支 --force