Git リポジトリへのパスワードや SSH キーといった機密データをコミットする場合、そのデータを履歴から削除することができます。 不要なファイルをリポジトリの履歴から完全に削除するには、git filter-branch コマンドと BFG Repo-Cleaner は、リポジトリの履歴を書き換えます。
ここにはgit filter-branchを使ってすべてのbranchesとtagsの履歴を削除するスクリプトです。
#!/bin/bash
branches=(master 1.0.0 1.0.1 ...)
key_file="file or path will be deleted"
for br in "${branches[@]}"; do
echo $br
git checkout "$br"
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch $key_file" --prune-empty --tag-name-filter cat
git add . && git commit -m "delete Sensitive Data" && git push origin --force --all
done
git push origin --force --tags
参照