web-dev-qa-db-fra.com

Supprimer plusieurs tags distants git et appuyer une fois

Dans Git, comment puis-je supprimer plusieurs tags avant de pousser?

Je sais comment le faire avec une étiquette à la fois. Je ne sais pas s'il est possible de faire plusieurs.

5
KanwarG

Pour supprimer localement plusieurs tags: tag git :

balise git -d <nom de la variable> ...

Alors tout simplement:

git tag -d TAG1 TAG2 TAG3

Pour supprimer plusieurs étiquettes à distance: git Push :

git Push [-d | --delete] [<repository> [<refspec> ...]]

Alors tout simplement:

git Push ${REMOTE_NAME:-Origin} --delete TAG1 TAG2 TAG3
21
zigarn

J'ai trouvé un moyen facile de le faire si vous avez installé grep et xargs. Je prends sans vergogne ceci de https://Gist.github.com/shsteimer/7257245 .

Supprimez toutes les balises distantes avec le motif que vous recherchez:

git tag | grep <pattern> | xargs -n 1 -I% git Push Origin :refs/tags/%

Supprimez tous vos tags locaux:

git tag | xargs -n 1 -I% git tag -d %

Récupérez les balises distantes qui restent encore:

git fetch
6
Lemtronix

Il supprimera tous les modèles de balises correspondants.

//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*")
3
AechoLiu

Vous pouvez supprimer plusieurs tags avec une seule commande en spécifiant tous les tags que vous souhaitez supprimer.

git tag -d 1.1 1.2 1.3

Ensuite, vous pouvez pousser toutes les balises supprimées. Bien sûr, vous pouvez supprimer les étiquettes avec des commandes distinctes avant d'appuyer.

Pour pousser les balises de suppression, il suffit de répertorier toutes les balises que vous souhaitez supprimer. La commande est la même pour supprimer une balise

git Push --delete Origin 1.1 1.2 1.3
3
Francesco