GitHubに上げてしまったパスワードを書いたファイルを消す方法

More than 5 years have passed since last update.


はじめに

間違ってパスワードを書いたファイルをGitHubにPushしてしまった場合、対象のファイルを削除しても commit 履歴には残ってしまっている。

これをコミットした履歴ごと削除するにはどうしたらいいか。

対応する方法を探していたら以下の公式のヘルプにまとまっていた。

Remove sensitive data


手順

方法としてはgit filter-branchで歴史をばっさりと書き換えて--forceオプションをつけてpushするようだ。

例えば Rakefile にパスワードを書いたまま誤ってGitHubにpushしてしまった場合は以下のようにする。

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' \

--prune-empty --tag-name-filter cat -- --all
$ git push origin master --force


おわりに

GitHubで多くのユーザーが秘密鍵を公開状態にしていたことが判明