web-dev-qa-db-fra.com

Quels noms sont des balises git valides?

J'ai un message d'erreur lors de la création d'une balise contenant [ personnage:

fatal: '[' n'est pas un nom de balise valide.

Question: y a-t-il des règles pour les tags dans le git?

62
Aik

Vous pouvez vérifier si le nom est valide avec

git check-ref-format

Cette page contient les contraintes sur un nom valide. Cité de la page (peut-être obsolète à l'avenir):

  1. Ils peuvent inclure une barre oblique / pour le regroupement hiérarchique (répertoire), mais aucun composant séparé par une barre oblique ne peut commencer par un point . ou terminer par la séquence .lock.

  2. Ils doivent contenir au moins un /. Cela renforce la présence d'une catégorie comme heads/, tags/ etc. mais les noms réels ne sont pas limités. Si la --allow-onelevel l'option est utilisée, cette règle est supprimée.

  3. Ils ne peuvent pas avoir deux points consécutifs .. n'importe où.

  4. Ils ne peuvent pas avoir ASCII caractères de contrôle (c'est-à-dire octets dont les valeurs sont inférieures à\040 ou\177 DEL), espace, tilde ~, caret ^ ou deux points : n'importe où.

  5. Ils ne peuvent pas avoir de point d'interrogation ?, astérisque *, ou ouvrir le support [ n'importe où. Voir le --refspec-pattern option ci-dessous pour une exception à cette règle.

  6. Ils ne peuvent ni commencer ni se terminer par une barre oblique / ou contenir plusieurs barres obliques consécutives (voir --normalize option ci-dessous pour une exception à cette règle)

  7. Ils ne peuvent pas se terminer par un point ..

  8. Ils ne peuvent pas contenir de séquence @{.

  9. Ils ne peuvent pas être le seul caractère @.

  10. Ils ne peuvent pas contenir un \.

Comme vous pouvez le voir, dans votre cas, vous avez violé la règle (5).

Vous pouvez utiliser le --normalize flag pour normaliser les balises par rapport aux barres obliques (en supprimant les barres obliques de tête et consécutives):

git check-ref-format --normalize "tags/weird//tag"

Le tags/ partie des espèces que vous validez un tag.

Après quelques discussions avec @NikosAlexandris, vous pouvez écrire la ligne suivante pour vérifier la balise <some-tag> avec commentaires textuels:

git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag"
84
Willem Van Onsem