当 Github 的 Repo 变得日益臃肿、或者上传了敏感内容时,常见的处理方法就是清理相关文件的所有历史提交记录:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ${FILEPATH}' --prune-empty --tag-name-filter cat -- --all
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
但若这类文件非常多的时候,一个可选的方法时直接清空所有历史记录:
rm -rf .git
git init
git add -A
git commit -m "clear history"
git remote add origin ${GITHUB_REPO_URL}
git push -f -u origin master