GitHubへ既存リポジトリをPushする時に100MB超過ファイルを過去に遡って削除する方法

既存リポジトリをGitHubへpushするときに、100MB超過ファイルがpushできず、過去に遡って100MB超過ファイルをリポジトリから除去する方法を探しました。
手順は色々あるようですが、うまくいくまで少し時間かかったので備忘録として残しておきます。

GitHubへ既存リポジトリをプッシュする方法

既存のリモートリポジトリが何かチェック

remote.origin.urlを書き換える

ここで100MBを超えるファイルがあると以下のエラーでpushできない

100MB超過ファイルを過去に遡って削除する方法

site-cookbooks/myrecipe/files/default/jdk-7u55-linux-x64.rpmが対象ファイルである場合

※削除対象が複数あってもgit filter-branchを連続で流すことはできません。後述するオブジェクトお掃除までしっかりやりましょう

以下のようなログが出てきます。ちゃんとリライトされている事を確認しましょう。
unchangedだけしか出ない場合は失敗してます。

オブジェクトのお掃除

ここまでが1ファイル削除するのに1セットです。
git filter-branchを連続で流すと怒られるので要注意。