リポジトリのファイルを履歴もろとも削除する方法
リモートとかに要らんファイルとかがあってリビジョンとかで履歴として見れる場合とかだと思うけど、それをもろとも削除したい場合なケースに遭遇したのでメモ
適当なgitリポジトリを作って
echo "hoge" > hoge.txt
echo "fuga" > fuga.txt
git add -v .
git commit -am "initial commit"
でhoge.txtをリビジョンから履歴もろともファイルも削除したいとかの場合には
git filter-branch --index-filter "git rm --cached --ignore-unmatch hoge.txt" --prune-empty
git push origin -f
で上記をやる前は
100644 blob 9128c3eb56a3547e2cca631042366bf0f37abe67 fuga.txt 100644 blob 2262de0c121f22df8e78f5a37d6e114fd322c0b0 hoge.txt
っていう風に出るけど実行した後では
100644 blob 9128c3eb56a3547e2cca631042366bf0f37abe67 fuga.txt
っていう風になる模様。
やたらとこういうの(要らんファイルをうpする)をやっちゃうので覚えておこう