BFGという、高速版 git filter branchを見つけた。
GitHubのHelpにも記載がある。
Remove sensitive data - User Documentation
jarファイルをダウンロードして、java -jar bfg-x.y.z.jar
で動く。
ファイルとフォルダの削除例。事前にmirrorでクローンが必要。
git clone --mirror somerepo somerepo.git java -jar bfg-x.y.z.jar --delete-folders .idea --delete-files '*~' somerepo.git
複数のフォルダやファイルが一度に消せなかったので、フォルダとファイルを一組づつ消して回った。速い。