APIキーなどの機密情報をGitHubに上げてしまった場合の対処方法を検索すると、リポジトリの履歴書き換えツールとして、以下のコマンドを用いた解決方法が見つかりました。
- git-filter-branch (git標準ツール)
- git-filter-repo (別途インストール)
- BFG Repo-Cleaner (別途インストール)
結論
先に結論を書かせていただきますと、git-filter-repo
を使うべきです。
理由は、git公式で推奨しているツールであり、他のツールと比較して処理が高速で柔軟性のある操作が可能なためです。
使用方法は、下記サイトを参照してください。それ以降に結論に至った理由を記載しています。
git-filter-repo 使用方法(公式GitHubリポジトリ)
git-filter-repo 使用方法(GitHub Docs)
git-filter-branch(非推奨)
個人的には別途インストールする必要のない、git標準ツールであるgit-filter-branch
を使用するのが、ベストだと思いましたが、下記git公式サイトの通り現在は非推奨のツールとなっており、代替ツールとしてgit-filter-repo
の利用が推奨されていました。
補足:非推奨の理由や、それでも使いたい場合の説明、コマンド実行時のオプションなどが書かれているので、気になる方は参考にしてみてください。
git-filter-branch ドキュメント
git-filter-repo(git公式が推奨)
git公式でも推奨していると記載しましたが、下記GitHubのサイトでも、リポジトリからの機密データの削除についてというドキュメントで、git-filter-repo
を使用した方法が紹介されています。
リポジトリからの機微なデータの削除
BFG Repo-Cleaner
git-filter-branch
と比較すると、処理速度が速く簡単に使用することができるが、git-filter-repo
と比較すると機能が限定的で柔軟性に欠けるとのことです。候補に挙げましたが、詳しく調査していません。