Zum Inhalt springen
GitTree
Git-Anleitungen3 Min. gelesen

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

Aktualisiert
  • 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.

Welcher Befehl passt zu Ihrem Fall?
Was ist passiert?Befehl
Gelöscht, nicht bereitgestelltgit restore path/to/file
Gelöscht und gestagtgit restore --staged --worktree path/to/file
In einem Commit gelöschtgit 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.ts

Wie 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.ts

Wie 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.ts

Dieser 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.ts

Die 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

  1. 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.

  2. 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.

  3. 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.

Lost & Found in GitTree listet Commits und Stashes auf, auf die keine Verzweigung verweist, sodass Sie sie zurückbringen können.
Lost & Found in GitTree listet Commits und Stashes auf, auf die keine Verzweigung verweist, sodass Sie sie zurückbringen können.

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.