webentwicklung-frage-antwort-db.com.de

Welche Namen sind gültige Git-Tags?

Ich habe eine Fehlermeldung beim Erstellen eines Tags mit [ Zeichen:

fatal: '[' ist kein gültiger Tag-Name.

Frage: Gibt es Regeln für Tags im Git?

62
Aik

Mit können Sie überprüfen, ob der Name gültig ist

git check-ref-format

Diese Seite enthält die Einschränkungen für einen gültigen Namen. Zitiert von der Seite (möglicherweise in der Zukunft veraltet):

  1. Sie können einen Schrägstrich / Für die hierarchische (Verzeichnis-) Gruppierung enthalten, aber keine durch Schrägstriche getrennte Komponente kann mit einem Punkt . Beginnen oder mit der Sequenz .lock Enden.

  2. Sie müssen mindestens einen / Enthalten. Dies erzwingt das Vorhandensein einer Kategorie wie heads/, tags/ Usw., aber die tatsächlichen Namen sind nicht eingeschränkt. Bei Verwendung der Option --allow-onelevel Wird auf diese Regel verzichtet.

  3. Sie dürfen nirgendwo zwei aufeinanderfolgende Punkte .. Haben.

  4. Sie dürfen keine ASCII Steuerzeichen (dh Bytes mit Werten unter\040 oder\177 DEL), Leerzeichen, Tilde ~, Caret ^ Oder Doppelpunkt : An einer beliebigen Stelle.

  5. Sie dürfen nirgendwo ein Fragezeichen ?, Ein Sternchen * Oder eine offene Klammer [ Haben. In der folgenden Option --refspec-pattern Finden Sie eine Ausnahme von dieser Regel.

  6. Sie dürfen nicht mit einem Schrägstrich / Beginnen oder enden oder mehrere aufeinanderfolgende Schrägstriche enthalten (eine Ausnahme von dieser Regel finden Sie in der Option --normalize Unten).

  7. Sie dürfen nicht mit einem Punkt . Enden.

  8. Sie dürfen keine Sequenz enthalten @{.

  9. Sie können nicht das einzelne Zeichen @ Sein.

  10. Sie dürfen kein \ Enthalten.

Wie Sie sehen, haben Sie in Ihrem Fall gegen Regel (5) verstoßen.

Mit dem Flag --normalize Können Tags in Bezug auf Schrägstriche normalisiert werden (wobei sowohl führende als auch aufeinanderfolgende Schrägstriche entfernt werden):

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

Die tags/ - Teilart, für die Sie ein tag validieren.

Nach einigen Diskussionen mit @NikosAlexandris können Sie die folgende Zeile schreiben, um das Tag <some-tag> Mit textuellem Feedback zu überprüfen:

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