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.51.2 → 2.52.0 keine Änderungen
-
2.51.1
2025-10-15
- 2.50.1 → 2.51.0 keine Änderungen
-
2.50.0
2025-06-16
- 2.45.1 → 2.49.1 keine Änderungen
-
2.45.0
2024-04-29
- 2.39.1 → 2.44.4 keine Änderungen
-
2.39.0
2022-12-12
- 2.37.4 → 2.38.5 keine Änderungen
-
2.37.3
2022-08-30
- 2.35.1 → 2.37.2 keine Änderungen
-
2.35.0
2022-01-24
- 2.20.1 → 2.34.8 keine Änderungen
-
2.20.0
2018-12-09
- 2.17.0 → 2.19.6 keine Änderungen
-
2.16.6
2019-12-06
- 2.7.6 → 2.15.4 keine Änderungen
-
2.6.7
2017-05-05
- 2.5.6 keine Änderungen
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
gitreflog[show] [<log-options>] [<ref>]gitrefloglistgitreflogexists<ref>gitreflogwrite<ref> <old-oid> <new-oid> <message>gitreflogdelete[--rewrite] [--updateref] [--dry-run|-n] [--verbose] <ref>@{<specifier>}...gitreflogdrop[--all[--single-worktree] | <refs>…]gitreflogexpire[--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 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 expire
--all-
Verarbeitet die Reflogs aller Referenzen.
--single-worktree-
Standardmäßig werden beim Spezifizieren von
--allReflogs 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=allbeschneidet Einträge unabhängig von ihrem Alter;--expire=neverdeaktiviert 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=allbeschneidet nicht erreichbare Einträge unabhängig von ihrem Alter;--expire-unreachable=neverdeaktiviert 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