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.49.1 → 2.51.2 keine Änderungen
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 keine Änderungen
- 2.48.0 keine Änderungen
- 2.47.1 → 2.47.3 keine Änderungen
-
2.47.0
2024-10-06
- 2.46.1 → 2.46.4 keine Änderungen
-
2.46.0
2024-07-29
SYNOPSIS
gitrefsmigrate--ref-format=<format> [--no-reflog] [--dry-run]gitrefsverify[--strict] [--verbose]gitrefslist[--count=<count>] [--shell|--perl|--python|--tcl] [(--sort=<key>)…] [--format=<format>] [--include-root-refs] [--points-at=<object>] [--merged[=<object>]] [--no-merged[=<object>]] [--contains[=<object>]] [--no-contains[=<object>]] [(--exclude=<pattern>)…] [--start-after=<marker>] [--stdin| (<pattern>...)]gitrefsexists<ref>gitrefsoptimize[--all] [--no-prune] [--auto] [--include<pattern>] [--exclude<pattern>]
BEFEHLE
migrate-
Migriert den Ref-Store zwischen verschiedenen Formaten.
verify-
Überprüft die Konsistenz der Referenzdatenbank.
- list
-
Listet Referenzen im Repository auf, mit Unterstützung für Filterung, Formatierung und Sortierung. Dieser Unterbefehl ist ein Alias für git-for-each-ref[1] und bietet identische Funktionalität.
- exists
-
Prüft, ob die angegebene Referenz existiert. Gibt einen Exit-Code von 0 zurück, wenn sie existiert, 2, wenn sie fehlt, und 1, falls das Nachschlagen der Referenz mit einem anderen Fehler als dem Fehlen der Referenz fehlgeschlagen ist. Dies überprüft nicht, ob die Referenz auf ein tatsächliches Objekt verweist.
- optimize
-
Optimiert Referenzen zur Verbesserung der Repository-Leistung und Reduzierung des Speicherplatzbedarfs. Dieser Unterbefehl ist ein Alias für git-pack-refs[1] und bietet identische Funktionalität.
OPTIONEN
Die folgenden Optionen sind spezifisch für git refs migrate
--ref-format=<format>-
Das Ref-Format, zu dem der Ref-Store migriert werden soll. Kann eines der folgenden sein:
-
filesfür lose Dateien mit "packed-refs". Dies ist der Standardwert. -
reftablefür das Reftable-Format. Dieses Format ist experimentell und seine Interna können sich ändern.
-
--dry-run-
Führt die Migration durch, modifiziert aber das Repository nicht. Die migrierten Refs werden in ein separates Verzeichnis geschrieben, das separat inspiziert werden kann. Der Name des Verzeichnisses wird auf stdout ausgegeben. Dies kann verwendet werden, um zu überprüfen, ob die Migration wie erwartet funktioniert, bevor die eigentliche Migration durchgeführt wird.
--reflog--no-reflog-
Wählt zwischen der Migration der Reflog-Daten in das neue Backend und deren Verwerfung. Standardmäßig wird "--reflog" verwendet, um zu migrieren.
Die folgenden Optionen sind spezifisch für git refs verify
--strict-
Aktiviert eine strengere Fehlerprüfung. Dies führt dazu, dass Warnungen als Fehler gemeldet werden. Siehe git-fsck[1].
--verbose-
Beim Überprüfen der Konsistenz der Referenzdatenbank gesprächig sein.
Die folgenden Optionen sind spezifisch für git refs list
- <pattern>...
-
Wenn ein oder mehrere <pattern>-Parameter angegeben sind, werden nur Refs angezeigt, die mit mindestens einem Muster übereinstimmen, entweder unter Verwendung von
fnmatch(3) oder wörtlich, wobei letzteres vollständig oder von Anfang bis zu einem Schrägstrich übereinstimmt. --stdin-
Die Liste der Muster wird von der Standardeingabe anstelle der Argumentliste gelesen.
--count=<count>-
Stoppt nach der Anzeige von <count> Refs.
--sort=<key>-
Sortiert nach dem Feldnamen <key>. Ein Präfix
-sortiert in absteigender Reihenfolge des Wertes. Wenn nicht angegeben, wirdrefnameverwendet. Sie können die Option--sort=<key> mehrmals verwenden, wobei der letzte Schlüssel zum primären Schlüssel wird. --format[=<format>]-
Eine Zeichenkette, die
%(fieldname) aus einer angezeigten Ref und dem Objekt, auf das sie verweist, interpoliert. Zusätzlich wird die Zeichenkette%%als%gerendert und%xx- wobeixxHexadezimalziffern sind - rendert als das Zeichen mit dem Hex-Codexx. Zum Beispiel interpoliert%00zu \0 (NUL),%09zu \t (TAB) und%0azu \n (LF).
Wenn nicht angegeben, wird <format> standardmäßig auf %(objectname) SPC %(objecttype) TAB %(refname) gesetzt.
--color[=<when>]-
Berücksichtigt alle Farben, die in der Option
--formatangegeben sind. Das Feld <when> muss einer der folgenden Werte sein:always,neveroderauto(wenn <when> fehlt, wird so verfahren, als wärealwaysangegeben). --shell--perl--python--tcl-
Wenn angegeben, werden Zeichenketten, die
%(fieldname)-Platzhalter ersetzen, als Zeichenkettenliterale für die angegebene Host-Sprache zitiert. Dies dient der Erzeugung eines Skriptlets, das direkt "eval"uiert werden kann. --points-at=<object>-
Listet nur Refs auf, die auf das angegebene Objekt verweisen.
--merged[=<object>]-
Listet nur Refs auf, deren Spitzen von dem angegebenen Commit (standardmäßig
HEAD) erreichbar sind. --no-merged[=<object>]-
Listet nur Refs auf, deren Spitzen von <object> (standardmäßig
HEAD) nicht erreichbar sind. --contains[=<object>]-
Listet nur Refs auf, die <object> (standardmäßig
HEAD) enthalten. --no-contains[=<object>]-
Listet nur Refs auf, die <object> (standardmäßig
HEAD) nicht enthalten. --ignore-case-
Das Sortieren und Filtern von Refs ist nicht-case-sensitiv.
--omit-empty-
Druckt keine neue Zeile nach formatierten Refs, bei denen das Format zu einer leeren Zeichenkette expandiert.
--exclude=<excluded-pattern>-
Wenn eine oder mehrere
--exclude-Optionen angegeben sind, werden nur Refs angezeigt, die keinem der <excluded-pattern>-Parameter entsprechen. Die Übereinstimmung erfolgt nach denselben Regeln wie bei <pattern> oben. --include-root-refs-
Listet Root-Refs (
HEADund Pseudorefs) getrennt von regulären Refs auf. --start-after=<marker>-
Ermöglicht die Paginierung der Ausgabe, indem Referenzen bis einschließlich des angegebenen Markers übersprungen werden. Beim Paginieren ist zu beachten, dass Referenzen zwischen den Aufrufen gelöscht, geändert oder hinzugefügt werden können. Die Ausgabe liefert nur diejenigen Referenzen, die alphabetisch nach dem Marker kommen. Die Ausgabe beginnt mit der ersten Referenz, die alphabetisch nach dem Marker kommt. Kann nicht mit den Optionen
--sort=<key> oder--stdinoder dem <pattern>-Argument(en) zur Einschränkung der Refs verwendet werden.
Die folgenden Optionen sind spezifisch für git refs optimize
- --all
-
Der Befehl packt standardmäßig alle Tags und bereits gepackten Refs und lässt andere Refs unverändert. Dies liegt daran, dass erwartet wird, dass Branches aktiv entwickelt werden und das Packen ihrer Spitzen die Leistung nicht verbessert. Diese Option bewirkt, dass auch alle Refs gepackt werden, mit Ausnahme von versteckten Refs, fehlerhaften Refs und symbolischen Refs. Nützlich für ein Repository mit vielen historischen Zweigen.
- --no-prune
-
Der Befehl entfernt normalerweise lose Refs unter dem
$GIT_DIR/refs-Hierarchie, nachdem sie gepackt wurden. Diese Option weist ihn an, dies nicht zu tun. - --auto
-
Packt Refs nach Bedarf, abhängig vom aktuellen Zustand der Ref-Datenbank. Das Verhalten hängt vom im Repository verwendeten Ref-Format ab und kann sich in Zukunft ändern.
-
"files": Lose Referenzen werden basierend auf dem Verhältnis von losen Referenzen zur Größe der
packed-refs-Datei in diepacked-refs-Datei gepackt. Je größer diepacked-refs-Datei ist, desto mehr lose Referenzen müssen existieren, bevor wir neu packen. -
"reftable": Tabellen werden so komprimiert, dass sie eine geometrische Sequenz bilden. Für zwei Tabellen N und N+1, wobei N+1 neuer ist, wird die Eigenschaft beibehalten, dass N mindestens doppelt so groß ist wie N+1. Nur Tabellen, die diese Eigenschaft verletzen, werden komprimiert.
-
- --include <pattern>
-
Packt Refs basierend auf einem
glob(7)-Muster. Wiederholungen dieser Option akkumulieren Einschlussmuster. Wenn ein Ref sowohl in--includeals auch in--excludeenthalten ist, hat--excludeVorrang. Die Verwendung von--includeschließt standardmäßig alle Tags aus. Symbolische Refs und fehlerhafte Refs werden niemals gepackt. Bei Verwendung mit--allist dies eine No-Operation. Verwenden Sie--no-include, um die Liste der Muster zu leeren und zurückzusetzen. - --exclude <pattern>
-
Packt keine Refs, die dem angegebenen
glob(7)-Muster entsprechen. Wiederholungen dieser Option akkumulieren Ausschlussmuster. Verwenden Sie--no-exclude, um die Liste der Muster zu leeren und zurückzusetzen. Wenn ein Ref bereits gepackt ist, wird er durch die Aufnahme mit--excludenicht entpackt.Bei Verwendung mit
--allwerden nur lose Refs gepackt, die keinem der bereitgestellten--exclude-Muster entsprechen.Bei Verwendung mit
--includewerden die mit--includeangegebenen Refs abzüglich der mit--excludeangegebenen Refs gepackt.
BEKANNTE EINSCHRÄNKUNGEN
Die Migration des Ref-Formats hat in ihrer aktuellen Form mehrere bekannte Einschränkungen
-
Es ist nicht möglich, Repositorys mit Worktrees zu migrieren.
-
Es gibt keine Möglichkeit, gleichzeitige Schreibvorgänge auf das Repository während einer laufenden Migration zu blockieren. Gleichzeitige Schreibvorgänge können zu einem inkonsistenten migrierten Zustand führen. Benutzer müssen Schreibvorgänge auf einer höheren Ebene blockieren. Wenn Ihr Repository für geplante Wartungsarbeiten registriert ist, wird empfohlen, es zuerst mit git-maintenance(1) abzumelden.
Diese Einschränkungen können möglicherweise aufgehoben werden.
GIT
Teil der git[1] Suite