Gitでは、プッシュする前に複数のタグを削除するにはどうすればよいですか?
一度に1つのタグでそれを行う方法を知っています。複数回行うことが可能かどうかわからない。
grep
とxargs
がインストールされている場合、これを行う簡単な方法を見つけました。 https://Gist.github.com/shsteimer/7257245 からこれを恥知らずに取っています。
探しているパターンのすべてのリモートタグを削除します。
git tag | grep <pattern> | xargs -n 1 -I% git Push Origin :refs/tags/%
ローカルタグをすべて削除します。
git tag | xargs -n 1 -I% git tag -d %
まだ残っているリモートタグを取得します。
git fetch
一致するすべてのタグパターンが削除されます。
//Delete remote:
git Push -d Origin $(git tag -l "tag_prefix*")
// Delete local:
git tag -d $(git tag -l "tag_prefix*")
// Examples:
git tag -d $(git tag -l "v1.0*")
git Push -d Origin $(git tag -l "*v3.[2]*-beta*")
削除したいすべてのタグを指定して、1つのコマンドで複数のタグを削除できます。
git tag -d 1.1 1.2 1.3
次に、削除されたすべてのタグをプッシュできます。もちろん、プッシュする前に別のコマンドでタグを削除できます。
タグをプッシュ削除するには、削除するすべてのタグをリストします。 1つのタグを削除するコマンドは同じです
git Push --delete Origin 1.1 1.2 1.3