git archive 使い方
すべてのコミットから特定のファイルを削除する
あるコミットからファイルを削除するなら git rebase を使うのだが、 すべてのコミットからファイルを削除するには git filter-branch を使う。
git filter-branch --tree-filter 'rm -f file.txt' HEAD
とする。ディレクトリなら
git filter-branch --tree-filter 'rm -rf path/to/dir' HEAD
のようにすればよい。
もちろん、これは過去のコミットを書き換える操作なので、 他の人と共有しているリポジトリなどで実行すると困ったことになるので注意。
参考
- man git-filter-branch
- http://git-scm.com/book/ja/Git-のさまざまなツール-歴史の書き換え