Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
-
2.52.0
2025-11-17
- 2.43.1 → 2.51.2 keine Änderungen
-
2.43.0
2023-11-20
- 2.23.1 → 2.42.4 keine Änderungen
-
2.23.0
2019-08-16
- 2.17.0 → 2.22.5 keine Änderungen
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
- 2.13.7 → 2.14.6 keine Änderungen
-
2.12.5
2017-09-22
- 2.11.4 keine Änderungen
-
2.10.5
2017-09-22
- 2.7.6 → 2.9.5 keine Änderungen
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
git check-ref-format [--normalize]
[--[no-]allow-onelevel] [--refspec-pattern]
<refname>
git check-ref-format --branch <branchname-shorthand>
BESCHREIBUNG
Überprüft, ob ein gegebener refname akzeptabel ist, und beendet sich mit einem Nicht-Null-Status, wenn dies nicht der Fall ist.
Eine Referenz wird in Git verwendet, um Branches und Tags zu spezifizieren. Ein Branch-Head wird in der refs/heads-Hierarchie gespeichert, während ein Tag in der refs/tags-Hierarchie des Referenz-Namensraums gespeichert wird (typischerweise in den Verzeichnissen $GIT_DIR/refs/heads und $GIT_DIR/refs/tags oder als Einträge in der Datei $GIT_DIR/packed-refs, wenn Referenzen von git gc gepackt werden).
Git legt folgende Regeln für die Benennung von Referenzen fest:
-
Sie können Schrägstriche
/für hierarchische (Verzeichnis-)Gruppierung enthalten, aber keine schrägstrichgetrennte Komponente darf mit einem Punkt.beginnen oder mit der Sequenz.lockenden. -
Sie müssen mindestens einen
/enthalten. Dies erzwingt die Anwesenheit einer Kategorie wieheads/,tags/usw., aber die tatsächlichen Namen sind nicht eingeschränkt. Wenn die Option--allow-onelevelverwendet wird, wird diese Regel aufgehoben. -
Sie dürfen nirgendwo zwei aufeinanderfolgende Punkte
..haben. -
Sie dürfen keine ASCII-Steuerzeichen (d. h. Bytes mit Werten kleiner als \040 oder \177
DEL), Leerzeichen, Tilde~, Caret^oder Doppelpunkt:enthalten. -
Sie dürfen nirgendwo Fragezeichen ?, Sternchen
*oder öffnende Klammern [ enthalten. Siehe die Option--refspec-patternunten für eine Ausnahme von dieser Regel. -
Sie dürfen nicht mit einem Schrägstrich
/beginnen oder enden oder mehrere aufeinanderfolgende Schrägstriche enthalten (siehe die Option--normalizeunten für eine Ausnahme von dieser Regel). -
Sie dürfen nicht mit einem Punkt
.enden. -
Sie dürfen keine Sequenz
@{enthalten. -
Sie dürfen nicht das einzelne Zeichen
@sein. -
Sie dürfen kein \ enthalten.
Diese Regeln erleichtern Shell-Skript-basierten Werkzeugen das Parsen von Referenznamen, die Pfadnamenerweiterung durch die Shell, wenn ein Referenzname unquoted (versehentlich) verwendet wird, und vermeiden auch Mehrdeutigkeiten in bestimmten Referenznamenausdrücken (siehe gitrevisions[7]).
-
Ein doppelter Punkt
..wird oft wie inref1..ref2verwendet, und in einigen Kontexten bedeutet diese Notation^ref1 ref2(d. h. nicht inref1und inref2). -
Eine Tilde
~und ein Caret^werden verwendet, um die Nachfolgeoperationen für den n-ten Elternteil und Zwiebelschälen einzuleiten. -
Ein Doppelpunkt
:wird wie insrcref:dstrefverwendet, um "verwende den Wert von srcref und speichere ihn in dstref" bei Fetch- und Push-Operationen zu bedeuten. Er kann auch verwendet werden, um ein bestimmtes Objekt auszuwählen, wie bei 'git cat-file': "git cat-file blob v1.3.3:refs.c". -
Eine offene Klammer mit At-Zeichen
@{wird als Notation zur Anzeige eines Reflog-Eintrags verwendet.
Mit der Option --branch nimmt der Befehl einen Namen entgegen und prüft, ob er als gültiger Branch-Name verwendet werden kann (z. B. beim Erstellen eines neuen Branches). Seien Sie jedoch vorsichtig bei der Verwendung der früheren Checkout-Syntax, die auf einen Detached HEAD-Zustand verweisen kann. Die Regel, die git check-ref-format --branch $name implementiert, kann strenger sein als das, was git check-ref-format refs/heads/$name sagt (z. B. kann ein Bindestrich am Anfang einer Referenzkomponente erscheinen, ist aber am Anfang eines Branch-Namens ausdrücklich verboten). Wenn der Befehl mit der Option --branch in einem Repository ausgeführt wird, wird die Eingabe zuerst für die "frühere Checkout-Syntax" @{-n} erweitert. Zum Beispiel ist @{-1} eine Möglichkeit, auf das letzte Element zu verweisen, das mit einer "git switch" oder "git checkout"-Operation ausgecheckt wurde. Diese Option sollte von Porcelains verwendet werden, um diese Syntax überall dort zu akzeptieren, wo ein Branch-Name erwartet wird, damit sie sich so verhalten können, als hätten Sie den Branch-Namen eingegeben. Als Ausnahme ist zu beachten, dass die "frühere Checkout-Operation" zu einem Commit-Objektnamen führen kann, wenn das N-te zuletzt ausgecheckte Element kein Branch war.
OPTIONEN
- --allow-onelevel
- --no-allow-onelevel
-
Steuert, ob einstufige Referenznamen akzeptiert werden (d. h. Referenznamen, die nicht mehrere durch
/getrennte Komponenten enthalten). Standardmäßig ist--no-allow-oneleveleingestellt. - --refspec-pattern
-
Interpretiert <refname> als Muster für einen Referenznamen für einen Refspec (wie bei Remote-Repositories verwendet). Wenn diese Option aktiviert ist, darf <refname> einen einzelnen
*im Refspec enthalten (z. B.foo/bar*/bazoderfoo/bar*baz/, aber nichtfoo/bar*/baz*). - --normalize
-
Normalisiert refname, indem führende Schrägstrich (
/) Zeichen entfernt und Folgen von aufeinanderfolgenden Schrägstrichen zwischen Namenskomponenten zu einem einzigen Schrägstrich komprimiert werden. Wenn der normalisierte Referenzname gültig ist, wird er auf die Standardausgabe ausgegeben und der Befehl beendet sich mit dem Status 0, andernfalls beendet er sich mit einem Nicht-Null-Status. (--printist eine veraltete Schreibweise für--normalize.)
BEISPIELE
-
Gibt den Namen des zuletzt ausgecheckten Elements aus
$ git check-ref-format --branch @{-1} -
Bestimmt den zu verwendenden Referenznamen für einen neuen Branch
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")|| { echo "we do not like '$newbranch' as a branch name." >&2 ; exit 1 ; }
GIT
Teil der git[1] Suite