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.
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
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
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*")
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