Suchen Sie eine gelöschte Datei im Commit-Verlauf eines Projekts in Git
Dieser Artikel beschreibt das Auffinden einer gelöschten Datei im Commit-Verlauf eines Projekts. Dies ist praktisch, wenn Sie eine Datei wiederherstellen möchten, die Sie in Ihrem Projekt gelöscht haben.
Lassen Sie uns ohne weiteres Umschweife direkt einsteigen.
Schritte zum Suchen und Wiederherstellen einer gelöschten Datei in Git
In einem Szenario, in dem wir eine Datei löschen und den Dateipfad nicht abrufen können, können wir den folgenden Befehl ausführen, um den Pfad zu finden.
$ git log --all --full-history -- "<OurFile>"
Der obige Befehl gibt alle Commits aus unserem Commit-Verlauf aus, die die Dateien enthalten, deren Namen unserem Muster <OurFile>
entsprechen. Natürlich müssen Sie <OurFile>
durch den korrekten Namen Ihrer Datei ersetzen.
Die Ausgabe kann uns helfen, den Dateipfad mithilfe der Commit-Hashes zu ermitteln, wie unten gezeigt.
$ git show --pretty="" --name-only <sha1-commit-hash>
Jetzt haben wir den Pfad zu unserer Datei. Wir möchten jedoch eine bestimmte Version der Datei wiederherstellen.
Wie gehen wir vor?
Wie unten gezeigt, müssen wir die Commits abrufen, in denen die Datei geändert wurde.
$ git log --all --full-history -- <path-to-file>
Um die gewünschte Version zu erhalten, führen wir Folgendes aus:
$ git show <sha1-commit-hash> -- <path-to-file>
Datei in einer Arbeitskopie wiederherstellen
Wie unten dargestellt, verwenden wir den Befehl git checkout
, um unsere Datei wiederherzustellen.
$ git checkout <sha1-commit-hash>^ -- <path-to-file>
Wir haben das Caret-Symbol ^
hinzugefügt, um Git anzuweisen, die Dateiversion vom vorherigen Commit abzurufen. Dadurch wird sichergestellt, dass wir den vorherigen Inhalt der Datei erhalten, wenn sie gelöscht wurde.
Kurz gesagt, das Git-Versionskontrollsystem ist sehr streng in Bezug auf den Verlust von Benutzerdaten. Wenn Sie in Ihrem Projekt eine Datei gelöscht haben und diese wiederherstellen müssen, befolgen Sie die oben beschriebenen Schritte.
Sie müssen nicht den vollständigen Pfad zu der Datei kennen.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn