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

のようにすればよい。

もちろん、これは過去のコミットを書き換える操作なので、 他の人と共有しているリポジトリなどで実行すると困ったことになるので注意。

参考

Tags of current page