Wiederherstellung verlorener Dateien

GitBeginner
Jetzt üben

Einführung

Als Entwickler kann es vorkommen, dass wichtige Dateien versehentlich gelöscht und diese Änderungen bereits committet wurden. Diese Herausforderung simuliert ein solches Szenario und testet Ihre Fähigkeit, die Historien-Inspektion und die Werkzeuge zur Zustands wiederherstellung von Git zu nutzen, um verlorene Daten zu retten und Ihr Projekt wieder in einen funktionsfähigen Zustand zu versetzen.

Wiederherstellung verlorener Dateien

Bevor Sie mit dieser Herausforderung beginnen, wurde für Sie bereits ein Git-Repository im Verzeichnis ~/project/important-project initialisiert. Dieses Repository enthält mehrere Commits, einschließlich der Erstellung und der anschließenden versehentlichen Löschung zweier wichtiger Dateien. Hier sind die Details:

  • Das Repository wurde mit einem initialen Commit erstellt, der eine README.md hinzufügte.
  • Zwei entscheidende Dateien, important_algorithm.py und crucial_data.txt, wurden in einem darauffolgenden Commit hinzugefügt.
  • Es folgten einige weitere Commits mit verschiedenen Änderungen.
  • Zu einem bestimmten Zeitpunkt wurden important_algorithm.py und crucial_data.txt versehentlich gelöscht und diese Löschung committet.
  • Nach der versehentlichen Löschung gab es mindestens einen weiteren Commit.

Ihre Aufgabe ist es, die gelöschten Dateien wiederherzustellen, indem Sie die Historie des Repositorys durchsuchen, und die wiederhergestellten Dateien anschließend neu zu committen.

Aufgaben

  1. Untersuchen Sie die Historie des Repositorys, um herauszufinden, wann important_algorithm.py und crucial_data.txt gelöscht wurden.
  2. Versetzen Sie das Repository in den Zustand unmittelbar vor der Löschung.
  3. Behalten Sie die ursprünglichen Commits bei und erstellen Sie einen neuen Commit mit der Nachricht "Recover deleted files".

Anforderungen

  • Arbeiten Sie im Verzeichnis ~/project/important-project.
  • Stellen Sie sicher, dass important_algorithm.py und crucial_data.txt nach der Wiederherstellung vorhanden sind.
  • Der letzte Commit-Log muss die Nachricht "Recover deleted files" tragen und die bisherige Commit-Historie muss erhalten bleiben.

Beispiel

Nach erfolgreichem Abschluss der Herausforderung sollte die Ausführung von ls im Projektverzeichnis Folgendes anzeigen:

$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md

Die Ausführung von git status sollte ein sauberes Arbeitsverzeichnis anzeigen:

$ git status
On branch master
nothing to commit, working tree clean

Und git log sollte Ihren neuen Commit an oberster Stelle anzeigen:

$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie ein häufiges Git-Szenario gemeistert: versehentlich gelöschte Dateien. Sie haben gelernt, wie man:

  1. Die vollständige Historie Ihres Repositorys inspiziert, einschließlich Aktionen, die den HEAD verändert haben.
  2. Ihr Repository in einen spezifischen vorherigen Zustand versetzt und so im Projekt effektiv "die Zeit zurückdreht".
  3. Einen neuen Commit erstellt, um den wiederhergestellten Zustand Ihres Projekts dauerhaft zu sichern.

Diese Fähigkeiten sind von unschätzbarem Wert, um verlorene Commits zu finden, Fehler rückgängig zu machen und eine saubere Projekthistorie zu pflegen. Denken Sie daran: Obwohl diese Werkzeuge Sie vor Katastrophen bewahren können, ist es immer am besten, sorgfältig zu arbeiten und häufige, gut dokumentierte Commits zu erstellen, um solche Situationen von vornherein zu vermeiden.

Durch den Abschluss dieser Herausforderung haben Sie praktische Erfahrung mit einigen der mächtigsten Wiederherstellungswerkzeuge von Git gesammelt – Fähigkeiten, die Ihnen in Ihrer gesamten Entwicklerkarriere gute Dienste leisten werden.