gitで特定のファイルの履歴を消す方法
$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch targetfile' HEAD
これで、特定のファイルtargetfileの履歴を消去できる。
特定のディレクトリは
$ git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch dir' HEAD
で特定のディレクトリdirが消える。-rオプションを忘れずに。
後は、コミットするだけ。
$ git commit -m 'delete targetfile'
リモートのリポジトリにもこの変更を反映させなければならない。
そういう場合は
$ git push origin master --force
でプッシュ。--forceを付けたのはリモートを強制的に上書きするため。
まだ、リモートにはブランチがのこってるので、それを消去
$ git branch -d delete-branch $ git push origin delete-ranch
参考サイト
特定のファイルの履歴を消す方法 : Redirecting...
リモートのbranchを消去する方法 : Git で不要になったローカルブランチ・リモートブランチの削除 - sotarokのお勉強