Informationen zu Branch- und Tagnamen
Die meisten Repositorys verwenden einfache Branchnamen, z. B. main
oder update-icons
. Tagnamen folgen in der Regel ebenfalls einem einfachen Format, z. B. einer Versionsnummer wie v1.2.3
. Sowohl Branchnamen als auch Tagnamen können auch das Pfadtrennzeichen (/
) für die Struktur verwenden, z. B. area/item
oder level-1/level-2/level-3
. Abgesehen von einigen Ausnahmen (z. B. kein Schrägstrich am Anfang oder Ende eines Namens oder aufeinanderfolgende Schrägstriche im Namen) gibt es bei Git sehr wenige Einschränkungen bei der Verwendung von Branch- und Tagnamen. Weitere Informationen findest du unter git-check-ref-format in der Git-Dokumentation.
Gründe für die Kennzeichnung von Sonderzeichen mit Escapezeichen
Bei Verwendung einer CLI kann es vorkommen, dass ein Branch- oder Tagname Sonderzeichen enthält, die eine besondere Bedeutung für die Shellumgebung haben. Wenn du diese Zeichen sicher in einem Git-Befehl verwenden möchtest, musst du sie in Anführungs- oder Escapezeichen setzen. Andernfalls hat der Befehl möglicherweise eine unbeabsichtigte Wirkung.
Beispielsweise wird das Zeichen $
von vielen Shells verwendet, um auf eine Variable zu verweisen. Die meisten Shells würden einen gültigen Branchnamen wie hello-$USER
als das Wort „Hallo“ gefolgt von einem Bindestrich gefolgt vom aktuellen Wert der USER
-Variable interpretieren und nicht als die Literalzeichenfolge hello-$USER
. Wenn ein Branchname das Zeichen $
enthält, muss die Shell davon abgehalten werden, es als Variablenverweis zu erweitern. Genauso wird ein Semikolon (;
) in einem Branchnamen von den meisten Shells als Befehlstrennzeichen interpretiert. Es muss also in Anführungs- oder Escapezeichen gesetzt werden.
Kennzeichnung von Sonderzeichen in Branch- und Tagnamen mit Escapezeichen
Branch- und Tagnamen, die Sonderzeichen enthalten, können in den meisten Fällen in einfache Anführungszeichen gesetzt werden, z. B. 'hello-$USER'
.
- In der Bash-Shell wird durch Einschließen einer Zeichenfolge in einfache Anführungszeichen der Literalwert der eingeschlossenen Zeichen beibehalten.
- Zsh verhält sich ähnlich wie Bash, doch ist dieses Verhalten über die Option
RC_QUOTES
konfigurierbar. - PowerShell behandelt in einfache Anführungszeichen gesetzte Zeichen ebenfalls literal.
Fälle, in denen der Branch- oder Tagname selbst ein einfaches Anführungszeichen enthält, bilden bei diesen Shells die wesentliche Ausnahme. In diesen Fällen solltest du die offizielle Dokumentation für die Shell zurate ziehen:
Benennen von Branches und Tags
Erstelle nach Möglichkeit Branch- und Tagnamen, die keine Sonderzeichen enthalten, da diese in Escapezeichen gesetzt werden müssten. Der folgende Standardzeichensatz ist für Branch- und Tagnamen sicher:
- Das englische Alphabet (
a
bisz
undA
bisZ
) - Zahlen (
0
bis9
) - Eine begrenzte Reihe von Interpunktionszeichen:
- Punkt (
.
) - Bindestrich (
-
) - Unterstrich (
_
) - Schrägstrich (
/
)
- Punkt (
Um Verwirrung zu vermeiden, solltest du Branchnamen mit einem Buchstaben beginnen.
Einschränkungen für Namen in GitHub
In GitHub gelten beim Pushen von Branch- und Tagnamen einige wenige Einschränkungen. Diese Einschränkungen sind:
- Namen dürfen Git-Objekt-IDs nicht ähneln (40 Zeichen enthalten; nur 0–9 und A–F), um Verwechslungen mit tatsächlichen Git-Objekt-IDs zu vermeiden.
- Namen dürfen nicht mit
refs/
beginnen, um Verwechslungen mit dem vollständigen Namen von Git-Verweisen zu vermeiden. Weitere Informationen zu Verweisen findest du in der Git-Dokumentation unter Git-Verweise.