Antworten:
Namensregeln für refname:
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 wieheads/
,tags/
etc. , aber die tatsächlichen Namen sind nicht eingeschränkt. Wenn die--allow-onelevel
Option 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
\040
oder sind\177
DEL
), Leerzeichen, Tilde~
, Caret^
oder Doppelpunkt haben:
.Sie dürfen nirgendwo ein Fragezeichen
?
, ein Sternchen*
oder eine offene Klammer haben[
. In der folgenden--refspec-pattern
Option finden Sie eine Ausnahme von dieser Regel.Sie können nicht mit einem Schrägstrich beginnen oder enden
/
oder mehrere aufeinanderfolgende Schrägstriche enthalten (--normalize
eine 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:
- Sie können nicht mit einem Bindestrich beginnen
-
Dank Jakub Narębski enthält die Manpage für git check-ref-format
weitere Details.
/
." Bitte erkläre? Keiner meiner Zweige hat einen /
Namen.
/
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 ...