English ▾ Themen ▾ Neueste Version ▾ git-refs zuletzt aktualisiert in 2.52.0

NAME

git-refs - Low-Level-Zugriff auf Refs

SYNOPSIS

git refs migrate --ref-format=<format> [--no-reflog] [--dry-run]
git refs verify [--strict] [--verbose]
git refs list [--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>...)]
git refs exists <ref>
git refs optimize [--all] [--no-prune] [--auto] [--include <pattern>] [--exclude <pattern>]

BESCHREIBUNG

Dieser Befehl bietet Low-Level-Zugriff auf Refs.

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:

  • files für lose Dateien mit "packed-refs". Dies ist der Standardwert.

  • reftable fü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, wird refname verwendet. 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 - wobei xx Hexadezimalziffern sind - rendert als das Zeichen mit dem Hex-Code xx. Zum Beispiel interpoliert %00 zu \0 (NUL), %09 zu \t (TAB) und %0a zu \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 --format angegeben sind. Das Feld <when> muss einer der folgenden Werte sein: always, never oder auto (wenn <when> fehlt, wird so verfahren, als wäre always angegeben).

--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 (HEAD und 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 --stdin oder 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 die packed-refs-Datei gepackt. Je größer die packed-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 --include als auch in --exclude enthalten ist, hat --exclude Vorrang. Die Verwendung von --include schließt standardmäßig alle Tags aus. Symbolische Refs und fehlerhafte Refs werden niemals gepackt. Bei Verwendung mit --all ist 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 --exclude nicht entpackt.

Bei Verwendung mit --all werden nur lose Refs gepackt, die keinem der bereitgestellten --exclude-Muster entsprechen.

Bei Verwendung mit --include werden die mit --include angegebenen Refs abzüglich der mit --exclude angegebenen 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