Welche Zeichen sind in einem Filialnamen unzulässig?

Antworten:

299

Namensregeln für refname:

Git legt die folgenden Regeln für die Benennung von Referenzen fest:

  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 enden .lock.

  2. 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.

  3. Sie können ..nirgendwo zwei aufeinanderfolgende Punkte haben .

  4. Sie dürfen nirgendwo ASCII-Steuerzeichen (dh Bytes, deren Werte niedriger als \040oder sind \177 DEL), Leerzeichen, Tilde ~, Caret ^oder Doppelpunkt haben :.

  5. 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.

  6. 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).

  7. Sie können nicht mit einem Punkt enden ..

  8. Sie können keine Sequenz enthalten @{.

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

  10. Sie können kein a enthalten \.

Darüber hinaus zusätzliche Regel für den Filialnamen:

  1. Sie können nicht mit einem Bindestrich beginnen -

Dank Jakub Narębski enthält die Manpage für git check-ref-formatweitere Details.

Manoj Govindan
quelle
9
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
Tony Brix