Hatena::ブログ(Diary)

おし、プログラミング

2011-08-25

gitで特定のファイルの履歴を消す方法

04:36 |  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のお勉強

トラックバック - http://d.hatena.ne.jp/ichhi/20110825/1314300975