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.1 → 2.52.0 keine Änderungen
-
2.51.0
2025-08-18
- 2.50.1 keine Änderungen
- 2.50.0 keine Änderungen
- 2.49.1 keine Änderungen
-
2.49.0
2025-03-14
- 2.43.1 → 2.48.2 keine Änderungen
-
2.43.0
2023-11-20
- 2.35.1 → 2.42.4 keine Änderungen
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 keine Änderungen
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 keine Änderungen
-
2.27.0
2020-06-01
- 2.25.1 → 2.26.3 keine Änderungen
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 keine Änderungen
-
2.23.0
2019-08-16
SYNOPSIS
gitrestore[<options>] [--source=<tree>] [--staged] [--worktree] [--] <pathspec>…gitrestore[<options>] [--source=<tree>] [--staged] [--worktree]--pathspec-from-file=<file> [--pathspec-file-nul]gitrestore(-p|--patch) [<options>] [--source=<tree>] [--staged] [--worktree] [--] [<pathspec>…]
BESCHREIBUNG
Stellen Sie angegebene Pfade im Arbeitsbaum mit Inhalten aus einer Wiederherstellungsquelle wieder her. Wenn ein Pfad verfolgt wird, aber in der Wiederherstellungsquelle nicht existiert, wird er entfernt, um mit der Quelle übereinzustimmen.
Der Befehl kann auch verwendet werden, um den Inhalt im Index mit --staged wiederherzustellen, oder um sowohl den Arbeitsbaum als auch den Index mit --staged --worktree wiederherzustellen.
Standardmäßig werden bei Angabe von --staged die Inhalte aus HEAD wiederhergestellt, andernfalls aus dem Index. Verwenden Sie --source, um aus einem anderen Commit wiederherzustellen.
Siehe "Zurücksetzen, Wiederherstellen und Rückgängigmachen" in git[1] für die Unterschiede zwischen den drei Befehlen.
OPTIONEN
-s<tree>--source=<tree>-
Stellen Sie die Arbeitsbaumdateien mit dem Inhalt des angegebenen Baums wieder her. Es ist üblich, den Quellbaum durch die Benennung eines damit verbundenen Commits, Branches oder Tags anzugeben.
Wenn nicht angegeben, werden die Inhalte aus
HEADwiederhergestellt, wenn--stagedangegeben ist, andernfalls aus dem Index.Als Sonderfall können Sie
"<rev-A>...<rev-B>"als Abkürzung für die Merge-Basis von <rev-A> und <rev-B> verwenden, wenn es genau eine Merge-Basis gibt. Sie können höchstens eine der Optionen <rev-A> und <rev-B> weglassen, in diesem Fall wird standardmäßigHEADverwendet. -p--patch-
Interaktiv Hunks in der Differenz zwischen Quell- und Wiederherstellungsort auswählen. Lesen Sie den Abschnitt "Interaktiver Modus" in git-add[1], um den
--patchModus zu bedienen. -U<n>--unified=<n>-
Generiert Diffs mit <n> Zeilen Kontext. Standard ist
diff.contextoder 3, wenn die Konfigurationsoption nicht gesetzt ist. --inter-hunk-context=<n>-
Zeigt den Kontext zwischen Diff-Hunks bis zur angegebenen Anzahl von <n> Zeilen an und fasst so nahe beieinander liegende Hunks zusammen. Standard ist
diff.interHunkContextoder 0, wenn die Konfigurationsoption nicht gesetzt ist. -W--worktree-S--staged-
Geben Sie den Wiederherstellungsort an. Wenn keine Option angegeben ist, wird standardmäßig der Arbeitsbaum wiederhergestellt. Die Angabe von
--stagedstellt nur den Index wieder her. Die Angabe beider stellt beides wieder her. -q--quiet-
Leise, unterdrückt Rückmeldungen. Beinhaltet
--no-progress. --progress--no-progress-
Der Fortschritt wird standardmäßig im Standardfehlerstrom gemeldet, wenn er an ein Terminal angeschlossen ist, es sei denn,
--quietist angegeben. Diese Flagge aktiviert die Fortschrittsanzeige auch dann, wenn sie nicht an ein Terminal angeschlossen ist, unabhängig von--quiet. --ours--theirs-
Beim Wiederherstellen von Dateien im Arbeitsbaum aus dem Index werden für unzusammengeführte Pfade Stufe #2 (
ours) oder #3 (theirs) verwendet. Diese Option kann nicht verwendet werden, wenn Pfade aus einem Tree-ish ausgecheckt werden (d.h. mit der Option--source).Beachten Sie, dass während
gitrebaseundgitpull--rebaseoursundtheirsvertauscht erscheinen können. Siehe die Erklärung derselben Optionen in git-checkout[1] für Details. -m--merge-
Beim Wiederherstellen von Dateien im Arbeitsbaum aus dem Index wird der widersprüchliche Merge in den unzusammengeführten Pfaden neu erstellt. Diese Option kann nicht verwendet werden, wenn Pfade aus einem Tree-ish ausgecheckt werden (d.h. mit der Option
--source). --conflict=<style>-
Das Gleiche wie die Option
--mergeoben, aber ändert die Art und Weise, wie widersprüchliche Hunks dargestellt werden, und überschreibt die Konfigurationsvariablemerge.conflictStyle. Mögliche Werte sindmerge(Standard),diff3undzdiff3. --ignore-unmerged-
Beim Wiederherstellen von Dateien im Arbeitsbaum aus dem Index wird die Operation nicht abgebrochen, wenn es unzusammengeführte Einträge gibt und weder
--ours,--theirs,--mergenoch--conflictangegeben ist. Unzusammengeführte Pfade im Arbeitsbaum bleiben unverändert. --ignore-skip-worktree-bits-
Im Sparse-Checkout-Modus werden standardmäßig nur Einträge aktualisiert, die von <pathspec> und Sparse-Mustern in
$GIT_DIR/info/sparse-checkoutübereinstimmen. Diese Option ignoriert die Sparse-Muster und stellt alle Dateien in <pathspec> bedingungslos wieder her. --recurse-submodules--no-recurse-submodules-
Wenn <pathspec> ein aktives Submodul bezeichnet und der Wiederherstellungsort den Arbeitsbaum einschließt, wird das Submodul nur aktualisiert, wenn diese Option gegeben ist, in diesem Fall wird sein Arbeitsbaum auf den im Superprojekt aufgezeichneten Commit zurückgesetzt und alle lokalen Änderungen überschrieben. Wenn nichts (oder
--no-recurse-submodules) verwendet wird, werden die Arbeitsbäume der Submodule nicht aktualisiert. Genau wie bei git-checkout[1] wird dabeiHEADdes Submoduls gelöst. --overlay--no-overlay-
Im Overlay-Modus werden beim Wiederherstellen niemals Dateien entfernt. Im No-Overlay-Modus werden verfolgte Dateien entfernt, die nicht im <tree> von
--source=<tree> erscheinen, um sie exakt an <tree> anzupassen. Standard ist der No-Overlay-Modus. --pathspec-from-file=<file>-
Pathspec wird in <file> anstelle von Kommandozeilenargumenten übergeben. Wenn <file> genau
-ist, wird die Standardeingabe verwendet. Pathspec-Elemente werden durch LF oder CR/LF getrennt. Pathspec-Elemente können wie für die Konfigurationsvariablecore.quotePatherklärt (siehe git-config[1]) in Anführungszeichen gesetzt werden. Siehe auch--pathspec-file-nulund global--literal-pathspecs. --pathspec-file-nul-
Nur relevant mit
--pathspec-from-file. Pfadangaben werden durch ein NUL-Zeichen getrennt und alle anderen Zeichen werden wörtlich genommen (einschließlich Zeilenumbrüchen und Anführungszeichen). ---
Interpretiere keine weiteren Argumente mehr als Optionen.
- <pathspec>...
-
Begrenzt die von der Operation betroffenen Pfade.
Weitere Details finden Sie im Eintrag pfadspec in gitglossary[7].
BEISPIELE
Die folgende Sequenz wechselt zum master-Branch, setzt die Makefile zwei Revisionen zurück, löscht versehentlich hello.c und holt sie aus dem Index zurück.
$ git switch master $ git restore --source master~2 Makefile (1) $ rm -f hello.c $ git restore hello.c (2)
-
Eine Datei aus einem anderen Commit nehmen
-
Stellen Sie
hello.caus dem Index wieder her
Wenn Sie *alle* C-Quellcodedateien so wiederherstellen möchten, dass sie mit der Version im Index übereinstimmen, können Sie sagen:
$ git restore '*.c'
Beachten Sie die Anführungszeichen um *.c. Die Datei hello.c wird ebenfalls wiederhergestellt, obwohl sie nicht mehr im Arbeitsbaum vorhanden ist, da die Dateiglobbing verwendet wird, um Einträge im Index (nicht im Arbeitsbaum durch die Shell) abzugleichen.
Um alle Dateien im aktuellen Verzeichnis wiederherzustellen
$ git restore .
oder um alle Arbeitsbaumdateien mit *top*-Pfadspezifikationsmagie wiederherzustellen (siehe gitglossary[7])
$ git restore :/
Um eine Datei im Index wiederherzustellen, damit sie mit der Version in HEAD übereinstimmt (dies ist dasselbe wie die Verwendung von git-reset[1])
$ git restore --staged hello.c
oder Sie können sowohl den Index als auch den Arbeitsbaum wiederherstellen (dies ist dasselbe wie die Verwendung von git-checkout[1])
$ git restore --source=HEAD --staged --worktree hello.c
oder die Kurzform, die praktischer, aber weniger lesbar ist
$ git restore -s@ -SW hello.c
GIT
Teil der git[1] Suite