2012-04-20 17 views
2

git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' HEADgitのファイルをタグから完全に削除するにはどうすればよいですか?

これは私がmysql_dbを削除するために行っていることですが、それは問題ありません。しかし、今私はすべてのタグからそれを行う必要があります。どうやってやるの?あなたが(彼らはその後、書き換えコミットを指しています)だけでなく、タグの名前を書き換える必要があり

+0

[なぜgit-filter-branchが書き換えられないのですか?](http://stackoverflow.com/questions/7672907/why-has-git-filter-branch-not-rewritten-tags) –

答えて

7

git filter-branch -f \ 
    --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' \ 
    --tag-name-filter 'cat' -- --all 

使用--allすべてのコミットを書き換えるために、現在のHEADからのものだけで到達できないコミット。 manpage of git filter-branchから

--tag-name-filter

[...]

オリジナルのタグが削除されていませんが、上書きすることができます。タグを単に更新するには、 " - tag-name-filter cat"を使用してください。この場合は、非常に注意して、変換が正しく実行された場合に備えて古いタグをバックアップしておいてください。

+0

私はOPがHEAD以外のものを使いたいと思う。あなたのコマンドのHEADを " - --all"に置き換えることは、このトリックを行うべきです。 – ralphtheninja

+0

HEADやすべてのコミットから到達可能なすべてのコミットを書き換えたいかどうかによって異なりますが、はい、私は同意します。ちょうど私の質問を更新します。 – knittl

関連する問題