GitHubにパスワードを書いたファイルを載せてしまったので消したい

後輩君に教えてもらったのでGitHubをそろそろと使い始めてみているのだが、間違ってパスワードをソース内に書いたファイルをpushしてしまった。慌ててファイルを消しても、commit履歴の方には残っているので、全世界に公開されてしまっている。さて困った、コミット履歴ごと消すにはどうすればいいんだろう。

ということで探し回っていたら、公式サイトのヘルプに書かれていた。

手順としては、git filter-branch で「歴史を書き換え」て、--forceオプションでpushする、ということのようだ。例えばsome_thing.plにパスワードをハードコードしており、それを誤ってそのままGitHub上にpushしてしまって直したい場合は以下のようにすれば良い。

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch some_thing.pl' \
  --prune-empty --tag-name-filter cat -- --all
$ git push origin master --force