Ich habe eine Fehlermeldung bekommt, während Tag [
Zeichen enthält erstellen:Welche Namen sind gültige Git-Tags?
fatal: name '[' ist kein gültiger Tag.
Frage: Gibt es Regeln für Tags in der Git?
Ich habe eine Fehlermeldung bekommt, während Tag [
Zeichen enthält erstellen:Welche Namen sind gültige Git-Tags?
fatal: name '[' ist kein gültiger Tag.
Frage: Gibt es Regeln für Tags in der Git?
können Sie überprüfen, ob der Name mit
git check-ref-format
Diese page enthält die Einschränkungen für einen gültigen Namen gültig ist. Zitat von der Seite (möglicherweise in Zukunft veraltet):
Sie können slash
/
für hierarchische (Verzeichnis) Gruppierung umfassen, aber keine Schrägstriche getrennte Komponente kann mit der Sequenz mit einem Punkt.
oder enden beginnen.lock
.Sie müssen mindestens eine
/
enthalten. Dies erzwingt das Vorhandensein einer Kategorie wieheads/
,tags/
usw., aber die tatsächlichen Namen sind nicht eingeschränkt. Wenn die Option--allow-onelevel
verwendet wird, wird auf diese Regel verzichtet.Sie können nicht zwei aufeinanderfolgende Punkte
..
irgendwo haben.Sie können nicht ASCII-Steuerzeichen (das heißt Bytes, deren Werte niedriger als \ 040 oder \ 177
DEL
), Raum, Tilde~
, caret^
oder Kolon:
überall haben.Sie können kein Fragezeichen haben
?
, Sternchen*
, oder offene Klammer irgendwo. Eine Ausnahme von dieser Regel finden Sie unter der folgenden Option--refspec-pattern
.Sie können nicht mit einem Schrägstrich
/
oder enthalten mehrere aufeinander folgende Schrägstriche (siehe--normalize
Option unten für eine Ausnahme von dieser Regel)Sie können nicht am Ende mit einem Punkt
.
beginnen oder enden.Sie können keine Sequenz
@{
enthalten.Sie können nicht das einzelne Zeichen
@
sein.Sie können keine
\
enthalten.
Wie Sie in Ihrem Fall sehen können, verletzt du Regel (5).
können Sie die --normalize
Flag verwenden Tags in Bezug auf normalisieren zu Schrägstriche (Entfernen von Schrägstriche sowie aufeinanderfolgende):
git check-ref-format --normalize "tags/weird//tag"
Die tags/
Teil Arten, die Sie tag
validieren.
Nach einiger Diskussion mit @NikosAlexandris, können Sie die folgenden Einzeiler schreiben den Tag <some-tag>
mit textuellem Feedback zu überprüfen:
git check-ref-format "tags/<some-tag>" && echo "Valid tag" || echo "Invalid tag!"
Die --normalize Option tatsächlich nur Griffe Schrägstriche. Es funktioniert nicht für andere Probleme, wie das Vorhandensein von ~. –
@VincentFourmond: In der Tat, das Programm endet mit Exit-Code '1' (also Fehler), ein Fehler vielleicht? –
nein, es verhält sich wie erwartet von der man-Seite: 'Normalisieren Sie refname, indem Sie alle führenden Schrägstriche (/) entfernen und aufeinanderfolgende Schrägstriche zwischen Namensbestandteilen in einem einzigen Schrägstrich zusammenfassen. Wenn der normalisierte Refname gültig ist, pint ihn zur Standardausgabe und beende ihn mit dem Status 0. (--print ist eine veraltete Schreibweise - normalize.) 'Es ist einfach nicht das was du sagst; -) ... –