2016-12-12 1 views
0

私のGitリポジトリにはたくさんのタグがあります。すべての単一のタグを削除するのではなく、いくつかの典型的なパターンで始まるすべてのタグを削除することは可能ですか?複数のタグを削除するにはどうすればよいですか?

v1.xxxで始まるタグはすべて削除しますが、v2.xxxで始まるタグは削除しません。私はすべてのタグを削除する必要はありません

git tag --delete v1.* 
git push --delete origin v1.* 

任意の提案を:

git tag -l | xargs git tag -d 

私はむしろのような何かをしたいと思うだろうか?

更新 - リモートで複数のタグをプッシュするにはどうすればよいですか?

+1

シェルのsupp 'git tag --delete v1.'と入力し、すべての補完を展開します(これはBashではデフォルトで' Alt' + '*'で行われます)。 – Biffen

答えて

2

経由LinuxはあなたがPIPEで区切ることによって、複数のGITのタグを削除することができますコマンド(|)

git tag | xargs git tag -d 

それとも、ローカルリポジトリ内のすべてのタグを削除することができます。

git tag -d `git tag | grep -E '.'` 

そして、あなた_testで終わるタグをすべて削除することができます

git tag -d `git tag | grep -E '^*\._test$'` 
+0

なので、最後のコマンドを書き直しました:$ git tag -d 'git tag | grep -E 'v1。^ *' 'これはv1で始まるすべてのタグを削除することです。 どうすればリモートでプッシュできますか? – Jules

+0

@Jules:あなたがする必要があります git add -A git commit -m "commit-message" git push これらの変更をリモートにプッシュするには、 –

+0

削除されたタグを通常のgit pushでプッシュすることはできません。 gitのプッシュ起源::レフリー/タグ/ 12345 OR はgitのプッシュ--delete原点tagNameを OR gitのタグがtagNameを -dが、私の理解のために、これは、単一のタグ名で作業しているあなたは、このような何かをしなければなりません – Jules

関連する問題