English ▾ Themen ▾ Neueste Version ▾ git-reflog zuletzt aktualisiert in 2.51.1

NAME

git-reflog - Referenzprotokoll-Informationen verwalten

SYNOPSIS

git reflog [show] [<log-options>] [<ref>]
git reflog list
git reflog exists <ref>
git reflog write <ref> <old-oid> <new-oid> <message>
git reflog delete [--rewrite] [--updateref]
	[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
git reflog drop [--all [--single-worktree] | <refs>…​]
git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
	[--rewrite] [--updateref] [--stale-fix]
	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>…​]

BESCHREIBUNG

Dieser Befehl verwaltet die in den Referenzprotokollen aufgezeichneten Informationen.

Referenzprotokolle oder "Reflogs" zeichnen auf, wann die Spitzen von Branches und andere Referenzen im lokalen Repository aktualisiert wurden. Reflogs sind in verschiedenen Git-Befehlen nützlich, um den alten Wert einer Referenz anzugeben. Zum Beispiel bedeutet HEAD@{2} "wo HEAD vor zwei Zügen war", master@{one.week.ago} bedeutet "wo master vor einer Woche in diesem lokalen Repository hingezeigt hat", und so weiter. Weitere Details finden Sie unter gitrevisions[7].

Der Befehl verwendet verschiedene Unterbefehle und je nach Unterbefehl unterschiedliche Optionen

Der Unterbefehl "show" (der auch der Standard ist, wenn keine Unterbefehle angegeben werden) zeigt das Protokoll der in der Befehlszeile angegebenen Referenz an (oder standardmäßig HEAD). Das Reflog deckt alle kürzlichen Aktionen ab, und zusätzlich zeichnet das HEAD Reflog den Wechsel von Branches auf. git reflog show ist ein Alias für git log -g --abbrev-commit --pretty=oneline; siehe git-log[1] für weitere Informationen.

Der Unterbefehl "list" listet alle Referenzen auf, die ein entsprechendes Reflog haben.

Der Unterbefehl "exists" prüft, ob eine Referenz ein Reflog hat. Er wird mit dem Exit-Code Null beendet, wenn das Reflog existiert, und mit einem Wert ungleich Null, wenn es nicht existiert.

Der Unterbefehl "write" schreibt einen einzelnen Eintrag in das Reflog einer gegebenen Referenz. Dieser neue Eintrag wird an das Reflog angehängt und wird somit zum jüngsten Eintrag. Der Referenzname muss vollständig qualifiziert sein. Sowohl die alte als auch die neue Objekt-ID dürfen nicht abgekürzt sein und müssen auf existierende Objekte zeigen. Die Reflog-Nachricht wird normalisiert.

Der Unterbefehl "delete" löscht einzelne Einträge aus dem Reflog, aber nicht das Reflog selbst. Sein Argument muss ein *exakter* Eintrag sein (z. B. "git reflog delete master@{2}"). Dieser Unterbefehl wird in der Regel auch nicht direkt von Endbenutzern verwendet.

Der Unterbefehl "drop" entfernt das Reflog für die angegebenen Referenzen vollständig. Dies steht im Gegensatz zu "expire" und "delete", die beide zum Löschen von Reflog-Einträgen verwendet werden können, aber nicht des Reflogs selbst.

Der Unterbefehl "expire" beschneidet ältere Reflog-Einträge. Einträge, die älter als die expire-Zeit sind, oder Einträge, die älter als die expire-unreachable-Zeit sind und nicht vom aktuellen Tip erreichbar sind, werden aus dem Reflog entfernt. Dies wird in der Regel nicht direkt von Endbenutzern verwendet - stattdessen siehe git-gc[1].

OPTIONEN

Optionen für show

git reflog show akzeptiert alle Optionen, die von git log akzeptiert werden.

Optionen für delete

git reflog delete akzeptiert die Optionen --updateref, --rewrite, -n, --dry-run und --verbose mit den gleichen Bedeutungen wie bei der Verwendung mit expire.

Optionen für drop

--all

Entfernt die Reflogs aller Referenzen aus allen Arbeitsbäumen.

--single-worktree

Standardmäßig werden beim Spezifizieren von --all Reflogs aus allen Arbeitsbäumen entfernt. Diese Option beschränkt die Verarbeitung auf Reflogs aus dem aktuellen Arbeitsbaum.

Optionen für expire

--all

Verarbeitet die Reflogs aller Referenzen.

--single-worktree

Standardmäßig werden beim Spezifizieren von --all Reflogs aus allen Arbeitsbäumen verarbeitet. Diese Option beschränkt die Verarbeitung auf Reflogs aus dem aktuellen Arbeitsbaum.

--expire=<time>

Beschneidet Einträge, die älter als die angegebene Zeit sind. Wenn diese Option nicht angegeben ist, wird die Ablaufzeit aus der Konfigurationseinstellung gc.reflogExpire übernommen, die wiederum standardmäßig 90 Tage beträgt. --expire=all beschneidet Einträge unabhängig von ihrem Alter; --expire=never deaktiviert das Beschneiden von erreichbaren Einträgen (aber siehe --expire-unreachable).

--expire-unreachable=<time>

Beschneidet Einträge, die älter als <time> sind und nicht vom aktuellen Branch-Tip erreichbar sind. Wenn diese Option nicht angegeben ist, wird die Ablaufzeit aus der Konfigurationseinstellung gc.reflogExpireUnreachable übernommen, die wiederum standardmäßig 30 Tage beträgt. --expire-unreachable=all beschneidet nicht erreichbare Einträge unabhängig von ihrem Alter; --expire-unreachable=never deaktiviert das frühe Beschneiden von nicht erreichbaren Einträgen (aber siehe --expire).

--updateref

Aktualisiert die Referenz auf den Wert des obersten Reflog-Eintrags (d.h. <ref>@{0}), wenn der vorherige oberste Eintrag beschnitten wurde. (Diese Option wird für symbolische Referenzen ignoriert.)

--rewrite

Wenn der Vorgänger eines Reflog-Eintrags beschnitten wird, wird sein "alter" SHA-1 so angepasst, dass er gleich dem "neuen" SHA-1-Feld des Eintrags ist, der ihm jetzt vorausgeht.

--stale-fix

Beschneidet alle Reflog-Einträge, die auf "beschädigte Commits" zeigen. Ein beschädigter Commit ist ein Commit, der von keinem der Referenz-Tips erreichbar ist und auf ein fehlendes Commit-, Baum- oder Blob-Objekt direkt oder indirekt verweist.

Diese Berechnung beinhaltet das Traversieren aller erreichbaren Objekte, d. h. sie hat die gleichen Kosten wie *git prune*. Sie ist hauptsächlich dazu gedacht, Beschädigungen zu beheben, die durch Garbage Collection mit älteren Git-Versionen verursacht wurden, die keine von Reflogs referenzierten Objekte schützten.

-n
--dry-run

Pruned keine Einträge tatsächlich ab; zeigt nur an, was abgeschnitten worden wäre.

--verbose

Gibt zusätzliche Informationen auf dem Bildschirm aus.

GIT

Teil der git[1] Suite