Wiederherstellen bestimmter Daten mithilfe von Git-Befehlen

Abgeschlossen

Die Möglichkeit, Daten mithilfe von Git-Befehlen wiederherzustellen, ist für Entwickler sehr wichtig. Dadurch können Sie versehentliche Änderungen rückgängig machen, gelöschte Dateien wiederherstellen oder verlorene Commits wiederherstellen. Dadurch werden unerwartete Probleme minimiert und ihr Projekt reibungslos ausgeführt. Es ist jedoch wichtig, vorsichtig zu sein. Wenn Sie die in diesem Abschnitt beschriebenen Git-Befehle verwenden, seien Sie vorsichtig, insbesondere beim Ändern des Commitverlaufs oder beim Wiederherstellen von Änderungen, da Fehler zu Datenverlusten führen können.

Git-Datenwiederherstellungsbefehle

Git-Befehle für die Datenwiederherstellung können in mehrere Kategorien gruppiert werden: Wiederherstellen von Commits, Dateien, bestimmten Codezeilen und gelöschten Commits oder Verzweigungen.

Wiederherstellen von Commits

  • git log - Zeigt den Commitverlauf eines Repositorys an. Sie können das Protokoll durchsuchen, um den Commit zu finden, den Sie wiederherstellen möchten.
  • Git Checkout <Commit> – Wechselt zu einem bestimmten Commit, wodurch der Status des Repositorys bei diesem Commit tatsächlich "wiederhergestellt" wird.
  • git cherry-pick <commit> – Wendet die Änderungen von einem bestimmten Commit auf Ihren aktuellen Branch an.

Wiederherstellen von Dateien

  • Git Checkout <Commit-Datei><> – Stellt eine bestimmte Datei aus einem vorherigen Commit wieder her.
  • git restore <file> - Verwirft lokale Änderungen und stellt die Datei in den letzten zugesicherten Zustand zurück (funktioniert nur, wenn Sie die Änderungen noch nicht zugesichert haben).

Wiederherstellen bestimmter Codezeilen

  • git blame <file> – Zeigt die Revision und den Autor jeder Zeile in einer Datei an und hilft dabei, den Commit zu finden, der eine bestimmte Änderung eingeführt hat.
  • git show <commit>:<file> – Zeigt den Inhalt einer Datei bei einem bestimmten Commit an. Sie können den Commit- und Dateipfad angeben, um den Inhalt so anzuzeigen, wie er zu diesem Zeitpunkt war.

Wiederherstellen gelöschter Commits oder Branches

  • git reflog – Zeigt einen Verlauf aller Commits an. Sie können sie verwenden, um den SHA-1-Hash eines zuvor gelöschten Commits oder einer Verzweigung zu finden und ihn dann auszuchecken oder wiederherzustellen.
  • git fsck --lost-found - Überprüft die Integrität des Repositorys und listet alle Commits auf, die von keinem Branch oder Tag erreichbar sind. Sie können dies verwenden, um verlorene Commits wiederherzustellen.

Denken Sie daran, diese Befehle sorgfältig zu verwenden, insbesondere beim Ändern der Commit-Geschichte oder dem Rückgängigmachen von Änderungen. Erstellen Sie vor dem Start immer eine Sicherung Ihres Repositorys, oder speichern Sie ihre aktuellen Änderungen mit git stash, bevor Sie versuchen, Wiederherstellungsvorgänge auszuführen.

Beispielszenario

Sehen wir uns ein Beispielszenario an, in dem gezeigt wird, wie Git-Befehle zum Wiederherstellen einer gelöschten Datei verwendet werden. Es wird davon ausgegangen, dass eine Datei mit dem Namen example.txt in Ihrem Git-Repository versehentlich gelöscht wurde und Sie sie wiederherstellen müssen.

Anzeigen des Commitverlaufs:

  • Beginnen Sie mit der Anzeige der Commit-Historie:git log
  • Suchen Sie im Commitverlauf den SHA-1-Hash des Commits, in dem die Datei zuletzt vorhanden example.txt war.

Wiederherstellen der gelöschten Datei:

  • Nachdem Sie den SHA-1-Hash des Commit gefunden haben, verwenden Sie das Git-Auschecken, um die Datei wiederherzustellen:git checkout <commit_SHA>^ -- example.txt
  • Ersetzen Sie <commit_SHA> mit dem SHA-1-Hash des Commits. Das Symbol „^“ gibt das übergeordnete Element dieses Commits an, wodurch die Datei in dem Zustand wiederhergestellt wird, den sie vor dem Löschen aufwies.

Überprüfen von Änderungen:

  • Überprüfen Sie nach dem Wiederherstellen der Datei, ob sie erfolgreich wiederhergestellt wurde, indem Sie den Repositorystatus überprüfen:git status
  • Stellen Sie sicher, dass example.txt als geänderte oder nicht nachverfolgte Datei aufgeführt ist.

Stagen und Committen der Änderungen:

  • Wenn die Datei als geändert aufgeführt ist, stellen Sie sie für den Commit-Vorgang bereit:git add example.txt
  • Übernehmen Sie die Änderungen mit einer klaren Commit-Nachricht:git commit -m "Restored example.txt"