So stellen Sie eine gelöschte Datei in Git wieder her
Der richtige Befehl hängt von einer Sache ab: Wie weit die Löschung fortgeschritten ist. Hier sind die drei Fälle, wie man den Commit findet, der eine Datei entfernt hat, und was Git nicht wiederherstellen kann.
Geschrieben von Kodmora
Das Softwarehaus hinter GitTree
- Rückgängigmachen und Wiederherstellen
- Commit-Verlauf
Auf dieser Seite
Um eine gelöschte Datei wiederherzustellen, die Sie noch nicht committet haben, führen Sie `git restore path/to/file` aus. Wenn sich die Löschung bereits in einem Commit-Vorgang befindet, suchen Sie diesen Commit-Befehl mit git log --diff-filter=D -- path/to/file und führen Sie dann git restore --source=<commit>^ -- path/to/file aus. Git kann alles, was es einmal gespeichert hat, wiederherstellen, sodass eine committete Datei fast immer wiederherstellbar ist.
| Was ist passiert? | Befehl |
|---|---|
| Gelöscht, nicht bereitgestellt | git restore path/to/file |
| Gelöscht und gestagt | git restore --staged --worktree path/to/file |
| In einem Commit gelöscht | git restore --source=<commit>^ -- path/to/file |
Wie kann ich eine Datei wiederherstellen, die ich gerade gelöscht habe?
Wenn git status die Datei unter „Änderungen, die nicht für den Commit bereitgestellt wurden“ auflistet, kopieren Sie sie aus dem Index zurück:
git restore src/app.tsWie kann ich eine Datei nach git rm wiederherstellen?
git rm löscht die Datei und führt den Löschvorgang ein, sodass sie unter „Zu übernehmende Änderungen“ angezeigt wird. Stellen Sie sowohl den Index als auch den Arbeitsordner von HEAD wieder her:
git restore --staged --worktree src/app.tsWie kann ich eine Datei wiederherstellen, die in einem früheren Commit gelöscht wurde?
Suchen Sie zuerst den Commit, der ihn gelöscht hat. --diff-filter=D zeigt nur Löschungen an:
git log --oneline --diff-filter=D -- src/app.tsDieser Commit hat die Datei nicht mehr, ihr übergeordnetes Element jedoch schon. Das ^ bedeutet „das übergeordnete Element von“, sodass die letzte Version vor dem Löschen wiederhergestellt wird:
git restore --source=4f2a9c1^ -- src/app.tsDie Datei kehrt als neue Änderung in Ihren Arbeitsordner zurück. Überprüfen Sie es, stellen Sie es dann bereit und übernehmen Sie es wie jede andere Bearbeitung. Auf einem Git älter als 2.23 erledigt git checkout 4f2a9c1^ -- src/app.ts die gleiche Aufgabe und stellt die Datei auch bereit.
Was ist, wenn ich mich nicht an den vollständigen Pfad erinnere?
Durchsuchen Sie jeden Zweig nach dem Dateinamen. Behalten Sie die Anführungszeichen bei, damit Git das Muster und nicht Ihre Shell erweitert:
git log --all --diff-filter=D --name-only --oneline -- "**/app.ts"Was kann Git nicht zurückbringen?
- Eine Datei, die nie bereitgestellt oder committet wurde. Git hat sie nie gespeichert. Überprüfen Sie den lokalen Verlauf Ihres Editors oder Ihr System-Backup.
- Dateien wurden von `git clean` entfernt. Sie wurden nicht verfolgt, daher behält Git keine Kopie.
- Nicht bereitgestellte Änderungen werden durch `git restore` ersetzt. Der Befehl überschreibt sie. Führen Sie ihn daher nur aus, wenn Sie dies beabsichtigen.
Eine Datei, die einmal bereitgestellt wurde und dann verloren ging, kann manchmal mit git fsck --lost-found gefunden werden, das Blobs auflistet, auf die nichts verweist. Der Beitrag zum Rückgängigmachen eines Zurücksetzens, Rebases oder Commits behandelt verlorene Commits, die Lektion zu Dateiverlauf und Blame zeigt, wie man eine Datei im Laufe der Zeit verfolgt, und die Anleitung zum Verwerfen und Bereinigen erklärt, was GitTree zuerst speichert.
So erhalten Sie eine Datei in GitTree zurück
Klicken Sie zuerst auf „Rückgängig“.
Wenn GitTree die Datei verworfen oder bereinigt hat, klicken Sie in der Symbolleiste auf Rückgängig. Es speichert einen Wiederherstellungs-Snapshot unter
refs/ogt/trash, bevor etwas entfernt wird.Durchsuchen Sie den Verlauf
Verwenden Sie die Commit-Graph-Suche, um den Commit zu finden, der die Datei berührt hat, und öffnen Sie dann diesen Commit, um seine Version zu lesen.
Verwenden Sie Lost & Found für verlorene Commits
Wählen Sie Tools → Lost & Found, um nach Commits zu suchen, auf die keine Verzweigungspunkte mehr verweisen.

Häufig gestellte Fragen
Was ist der Unterschied zwischen Git Restore und Git Checkout?
git restore wurde in Git 2.23 hinzugefügt, um eine Aufgabe zu erfüllen: Dateien wiederherstellen. git checkout wechselt auch die Zweige, was den Missbrauch erleichtert.
Wie sehe ich, wann eine Datei gelöscht wurde?
Führen Sie git log --diff-filter=D -- path/to/file aus. Es listet den Commit auf, der ihn entfernt hat, mit Autor und Datum.
Warum sagt Git Restore, dass die Pfadangabe nicht übereinstimmte?
Git kennt diesen Pfad an der von Ihnen gewählten Quelle nicht. Wenn die Datei bei einem Commit gelöscht wurde, stellen Sie sie mit --source=<commit>^ vom übergeordneten Element dieses Commits wieder her.
Kann ich einen gelöschten Ordner wiederherstellen?
Ja. Übergeben Sie den Ordnerpfad anstelle einer Datei, zum Beispiel git restore --source=<commit>^ -- src/utils.
Wird eine wiederhergestellte Datei automatisch committet?
Nein. Es erscheint als Änderung in Ihrem Arbeitsordner. Stellen Sie es bereit und übergeben Sie es, wenn Sie dazu bereit sind.
Quellen
Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 7. November 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.