使用 filter-branch

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

将包含敏感数据的文件添加到 .gitignore,以确保你不会意外地再次提交它。

echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

将你的本地仓库推送到 GitHub

git push origin --force --all

要从标记版本中删除敏感文件,你还需要强制推送 Git 标记:

git push origin --force --tags