2

git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' HEAD

それは私が削除するために行っていることでmysql_dbあり、それで問題ありません。しかし今、私はすべてのタグからそれをしなければなりません。どうやってやるの?

4

1 に答える 1

7

タグ名も書き直す必要があります(書き直されたコミットを指すようになります)。

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

--all現在のコミットから到達可能なコミットだけでなく、すべてのコミットを書き換えるために使用しHEADます。

git filter-branchのマンページから:

--tag-name-filter

[…]

元のタグは削除されませんが、上書きできます。「--tag-name-filtercat」を使用して、タグを更新するだけです。この場合、変換が失敗した場合に備えて、十分に注意し、古いタグがバックアップされていることを確認してください。

于 2012-04-20T15:31:31.637 に答える