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?
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):
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.Sie müssen mindestens einen
/
Enthalten. Dies erzwingt das Vorhandensein einer Kategorie wieheads/
,tags/
Usw., aber die tatsächlichen Namen sind nicht eingeschränkt. Bei Verwendung der Option--allow-onelevel
Wird auf diese Regel verzichtet.Sie dürfen nirgendwo zwei aufeinanderfolgende Punkte
..
Haben.Sie dürfen keine ASCII Steuerzeichen (dh Bytes mit Werten unter\040 oder\177
DEL
), Leerzeichen, Tilde~
, Caret^
Oder Doppelpunkt:
An einer beliebigen Stelle.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.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).Sie dürfen nicht mit einem Punkt
.
Enden.Sie dürfen keine Sequenz enthalten
@{
.Sie können nicht das einzelne Zeichen
@
Sein.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"