はじめに
間違ってパスワードを書いたファイルを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