Je souhaite supprimer toutes les balises d'un référentiel Git. Comment puis je faire ça?
En utilisant git tag -d tagname
supprimer la balise tagname
localement, et en utilisant git push --tags
je mets à jour les balises sur le fournisseur git.
J'ai essayé:
git tag -d *
Mais je vois que cela *
signifie les fichiers du répertoire actuel.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Considérez que j'ai beaucoup de balises et que je veux les supprimer toutes.
git tag -l | xargs -n 1 git push --delete origin
supprimais de la télécommande.Pour supprimer des balises distantes (avant de supprimer des balises locales), procédez simplement comme suit:
puis supprimez les copies locales:
la source
Il peut être plus efficace de pousser la suppression de toutes les balises dans une seule commande. Surtout si vous en avez plusieurs centaines.
Dans un shell non Windows approprié, supprimez toutes les balises distantes:
Supprimez ensuite toutes les balises locales:
Cela devrait être OK tant que vous n'avez pas de nom
'
dans votre balise. Pour cela, les commandes suivantes doivent être OK.Il existe probablement d'autres façons de prendre une liste de lignes, de les mettre entre guillemets, de les transformer en une seule ligne, puis de passer cette ligne à une commande. Considérant que c'est l'environnement de dépouillement de chat ultime et tout.
la source
xargs -L 1
il?git tag
renvoie les balises, une par ligne, puis lesxargs -L 1
affiche une par ligne, alors à quoi ça sert?Pour les utilisateurs de Windows utilisant PowerShell:
Cela supprime toutes les balises retournées par
git tag
en exécutantgit tag -d
pour chaque ligne retournée.la source
Ajout à la réponse de Stefan qui manquait comment supprimer les balises de la télécommande. Pour Windows PowerShell, vous pouvez l'exécuter pour supprimer d'abord les balises distantes suivies des balises locales.
la source
Si vous n'avez pas les balises dans votre référentiel local, vous pouvez supprimer les balises distantes sans avoir à les apporter à votre référentiel local.
N'oubliez pas de remplacer "origine" par le nom de votre gestionnaire distant.
la source
Pour les utilisateurs de Windows:
Cela supprime toutes les balises locales en exécutant git tag et en alimentant cette liste en git tag -d:
(Trouvé sur: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
la source
Vous pouvez aussi utiliser:
la source
Étant donné que toutes ces options ne fonctionnent que sous Linux, voici l'équivalent de Windows pour quiconque doit y faire face:
la source
Je dois supprimer les tags avec préfixe
par exemple, je dois supprimer les balises v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
Pour répertorier toutes les balises avec préfixe
Pour supprimer les balises
Voilà comment fonctionne la première déclaration
la source
Powershell v7 prend en charge foreach parallèle si vous avez beaucoup de balises en amont (origine) que vous devez supprimer:
la source