Git legt die folgenden Regeln für die Benennung von Referenzen fest:
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 enden .lock.
Sie müssen mindestens eine enthalten /. Dies erzwingt das Vorhandensein einer Kategorie wie heads/, tags/etc. , aber die tatsächlichen Namen sind nicht eingeschränkt. Wenn die --allow-onelevelOption verwendet wird, wird auf diese Regel verzichtet.
Sie können ..nirgendwo zwei aufeinanderfolgende Punkte haben .
Sie dürfen nirgendwo ASCII-Steuerzeichen (dh Bytes, deren Werte niedriger als \040oder sind \177DEL), Leerzeichen, Tilde ~, Caret ^oder Doppelpunkt haben :.
Sie dürfen nirgendwo ein Fragezeichen ?, ein Sternchen *oder eine offene Klammer haben [. In der folgenden --refspec-patternOption finden Sie eine Ausnahme von dieser Regel.
Sie können nicht mit einem Schrägstrich beginnen oder enden /oder mehrere aufeinanderfolgende Schrägstriche enthalten ( --normalizeeine Ausnahme von dieser Regel finden Sie in der folgenden Option).
Sie können nicht mit einem Punkt enden ..
Sie können keine Sequenz enthalten @{.
Sie können nicht das einzelne Zeichen sein @.
Sie können kein a enthalten \.
Darüber hinaus zusätzliche Regel für den Filialnamen:
Erwähnenswert ist, dass '>' erlaubt ist, aber um zu diesem Zweig in Bash zu wechseln, muss mit einem vorangegangenen '\'
Igniteflow
3
Ich bin verwirrt über Regel 2 in der Manpage, die Sie verlinkt haben. Es heißt "2. Sie müssen mindestens eine enthalten /." Bitte erkläre? Keiner meiner Zweige hat einen /Namen.
Chharvey
7
@chharvey: Ein "Zweig" ohne ein /hat heads/ihm "automatisch" vorangestellt. Eigentlich: ohne a /ist noch nicht klar, ob es sich um einen Zweig oder ein Tag oder etwas anderes handelt ...
Robert Siemer
1
@ DMTintner: Kommas sind erlaubt.
Robert Siemer
3
Hier ist ein regulärer Ausdruck für dieses /^[\./ weibl. [\\] / g Hier werden die ungültigen Zeichen gefunden, sodass Sie sie durch ein '-' oder ein beliebiges Zeichen ersetzen können
Antworten:
Namensregeln für refname:
Darüber hinaus zusätzliche Regel für den Filialnamen:
Dank Jakub Narębski enthält die Manpage für
git check-ref-format
weitere Details.quelle
/
." Bitte erkläre? Keiner meiner Zweige hat einen/
Namen./
hatheads/
ihm "automatisch" vorangestellt. Eigentlich: ohne a/
ist noch nicht klar, ob es sich um einen Zweig oder ein Tag oder etwas anderes handelt ...