Wiederherstellen bestimmter Daten mithilfe von Git-Befehlen

Abgeschlossen

Die Möglichkeit zum Wiederherstellen von Daten mithilfe von Git-Befehlen ist für Entwickler entscheidend, versehentliche Änderungen wiederherzustellen, gelöschte Dateien wiederherzustellen oder verlorene Commits wiederherzustellen. Sie trägt dazu bei, unerwartete Ausfallzeiten zu minimieren und die Projektkontinuität sicherzustellen. Während seine Vorteile jedoch klar sind, ist es wichtig, auf seine potenziellen Risiken hinzuweisen. Wenn Sie den in dieser Einheit beschriebenen Git-Befehl anwenden, ist es wichtig, die richtige Vorsicht zu üben, insbesondere beim Bearbeiten des Commitverlaufs oder beim Zurücksetzen von Änderungen, da Fehler zu Datenverlust führen können.

Git-Datenwiederherstellungsbefehle

Git-Befehle, die sich mit der Datenwiederherstellung befassen, können in mehrere Kategorien gruppiert werden, darunter das Wiederherstellen von Commits, Dateien, bestimmte Codezeilen und gelöschte Commits oder Verzweigungen.

Wiederherstellen von Commits

  • git log: listet den Commitverlauf eines Repositorys auf. Sie können durch das Protokoll navigieren, um den Commit zu finden, den Sie wiederherstellen möchten.
  • Git Checkout <Commit>: Wechselt zu einem bestimmten Commit und stellt den Status des Repositorys zu diesem Commit effektiv wieder her.
  • git cherry-pick <Commit>: Übernimmt die durch einen bestimmten Commit eingeführten Änderungen für Ihren aktuellen Branch.

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, vorausgesetzt, Sie haben die Änderungen noch nicht übernommen.

Wiederherstellen bestimmter Codezeilen

  • git blame <file>: Zeigt die Revision und den Autor jeder Zeile in einer Datei an, wodurch Sie das Commit identifizieren können, das 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 vorhanden ist.

Wiederherstellen gelöschter Commits oder Branches

  • git reflog: Zeigt einen Datensatz 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 mit Vorsicht zu verwenden, insbesondere beim Manipulieren der Commit-Historie oder beim Rückgängigmachen von Änderungen. Stellen Sie immer sicher, dass Sie eine Sicherung Ihres Repositorys erstellen, bevor Sie git stash starten oder verwenden, um Ihre aktuellen Änderungen zu speichern, bevor Sie versuchen, Wiederherstellungsvorgänge auszuführen.

Beispielszenario

Sehen wir uns ein Beispielszenario an, das den Prozess der Verwendung von Git-Befehlen zum Wiederherstellen einer gelöschten Datei veranschaulicht. Es wird davon ausgegangen, dass eine Datei mit dem Namen example.txt, die sich in Ihrem Git-Repository befindet, versehentlich gelöscht wurde und Sie sie wiederherstellen müssen.

Anzeigen des Commitverlaufs:

  • Zeigen Sie zunächst den Commitverlauf an:
    Befehl „git log“
  • Identifizieren Sie in der Commit-Verlaufs-Liste den SHA-1-Hash des Commits, in dem die Datei example.txt zuletzt vorhanden war.

Wiederherstellen der gelöschten Datei:

  • Nachdem Sie den SHA-1-Hash des Commit identifiziert haben, verwenden Sie das Git-Auschecken, um die Datei wiederherzustellen:
    git checkout <commit_SHA>^ -- example.txt
  • Ersetzen Sie <commit_SHA> durch den 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:
    Befehl „git status“
  • Überprüfen Sie, ob example.txt als geänderte oder nicht nachverfolgte Datei aufgeführt werden.

Stagen und Committen der Änderungen:

  • Wenn die Datei als geändert aufgeführt ist, stagen Sie sie für den Commit:
    git add example.txt
  • Committen Sie die Änderungen mit einer entsprechenden Commitnachricht:
    git commit -m "Restored example.txt"