Einführung
In diesem Lab lernen Sie, wie Sie feststellen können, ob ein Git-Commit rückgängig gemacht wurde. Wir werden untersuchen, wie Sie den Befehl git log verwenden können, um Rückgängig-Machen-Commits (Revert-Commits) zu finden, und dann git show nutzen, um die Details dieser Rückgängig-Machungen zu überprüfen. Schließlich werden wir nicht rückgängig gemachte Commits betrachten, um den Unterschied in ihrer Historie und ihrem Inhalt zu verstehen. Diese praktische Übung führt Sie durch die Erstellung einer Beispielprojekthistorie, einschließlich eines Commits, der später rückgängig gemacht wird, und ermöglicht es Ihnen, die Techniken zum Identifizieren und Überprüfen von rückgängig gemachten Commits zu üben.
Führen Sie 'git log' aus, um rückgängig gemachte Commits zu finden
In diesem Schritt lernen wir, wie man git log verwendet, um Commits zu finden, die rückgängig gemacht wurden. Ein Commit rückgängig zu machen bedeutet, einen neuen Commit zu erstellen, der die Änderungen eines früheren Commits rückgängig macht. Dies ist nützlich, wenn Sie einen Fehler gemacht haben und ihn einfach rückgängig machen möchten, ohne die Historie des ursprünglichen Commits zu verlieren.
Zunächst stellen wir sicher, dass wir uns in unserem Projektverzeichnis befinden. Öffnen Sie Ihr Terminal und navigieren Sie zum Verzeichnis my-time-machine:
cd ~/project/my-time-machine
Jetzt erstellen wir einige Commits, um eine Projekthistorie zu simulieren, einschließlich eines Commits, den wir später rückgängig machen werden.
Erstellen Sie die erste Datei:
echo "Initial content" > file1.txt
git add file1.txt
git commit -m "Add file1"
Sie sollten eine Ausgabe ähnlich dieser sehen:
[master (root-commit) a1b2c3d] Add file1
1 file changed, 1 insertion(+)
create mode 100644 file1.txt
Jetzt fügen wir noch etwas Inhalt hinzu und erstellen einen weiteren Commit:
echo "Adding more content" >> file1.txt
git add file1.txt
git commit -m "Add more content to file1"
Sie sollten eine Ausgabe ähnlich dieser sehen:
[master 4e5f6g7] Add more content to file1
1 file changed, 1 insertion(+)
Als Nächstes erstellen wir einen Commit, den wir später rückgängig machen werden:
echo "This commit will be reverted" > file2.txt
git add file2.txt
git commit -m "Add file2 (will be reverted)"
Sie sollten eine Ausgabe ähnlich dieser sehen:
[master 8h9i0j1] Add file2 (will be reverted)
1 file changed, 1 insertion(+)
create mode 100644 file2.txt
Jetzt machen wir den letzten Commit rückgängig. Wir können git revert HEAD verwenden, um den neuesten Commit rückgängig zu machen:
git revert HEAD --no-edit
Das Flag --no-edit teilt Git mit, die Rückgängig-Machen-Commit-Nachricht automatisch zu erstellen, ohne einen Editor zu öffnen. Sie sollten eine Ausgabe ähnlich dieser sehen:
[master k2l3m4n] Revert "Add file2 (will be reverted)"
1 file changed, 1 deletion(-)
delete mode 100644 file2.txt
Toll! Wir haben jetzt einen Commit erstellt, der die Änderungen des Commits "Add file2 (will be reverted)" rückgängig macht.
Jetzt verwenden wir git log, um unsere Commit-Historie anzuzeigen und den Rückgängig-Machen-Commit zu finden:
git log --oneline
Sie sollten eine Ausgabe ähnlich dieser sehen:
k2l3m4n (HEAD -> master) Revert "Add file2 (will be reverted)"
8h9i0j1 Add file2 (will be reverted)
4e5f6g7 Add more content to file1
a1b2c3d Add file1
Beachten Sie die Commit-Nachricht "Revert 'Add file2 (will be reverted)'". Dies zeigt deutlich an, dass dieser Commit ein Rückgängig-Machen eines früheren Commits ist. Die Verwendung von git log mit dem Flag --oneline ist eine schnelle Möglichkeit, eine Zusammenfassung Ihrer Commit-Historie zu sehen und Rückgängig-Machen-Commits anhand ihrer Nachricht zu identifizieren.
Verwenden Sie 'git show' zur Überprüfung der Rückgängigmachung
In diesem Schritt verwenden wir den Befehl git show, um die Details des Rückgängig-Machen-Commits (Revert-Commits) zu untersuchen und zu überprüfen, ob er die Änderungen des ursprünglichen Commits korrekt rückgängig gemacht hat. Der Befehl git show ist ein leistungsstarkes Werkzeug zum Untersuchen von Git-Objekten, einschließlich Commits, Tags und Blobs.
Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden:
cd ~/project/my-time-machine
Jetzt benötigen wir den Commit-Hash des Rückgängig-Machen-Commits. Sie können diesen aus der Ausgabe von git log --oneline aus dem vorherigen Schritt erhalten. Es ist der erste aufgelistete Commit. Beispielsweise, wenn Ihre git log --oneline-Ausgabe wie folgt war:
k2l3m4n (HEAD -> master) Revert "Add file2 (will be reverted)"
8h9i0j1 Add file2 (will be reverted)
4e5f6g7 Add more content to file1
a1b2c3d Add file1
Der Commit-Hash für den Rückgängig-Machen-Commit ist k2l3m4n. Hinweis: Ihr Commit-Hash wird anders sein.
Verwenden Sie jetzt git show gefolgt vom Commit-Hash Ihres Rückgängig-Machen-Commits. Ersetzen Sie YOUR_REVERT_COMMIT_HASH durch den tatsächlichen Hash aus Ihrer git log --oneline-Ausgabe:
git show YOUR_REVERT_COMMIT_HASH
Beispielsweise, wenn wir den Beispiel-Hash k2l3m4n verwenden:
git show k2l3m4n
Sie sollten eine Ausgabe ähnlich dieser sehen:
commit k2l3m4n (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:05:00 2023 +0000
Revert "Add file2 (will be reverted)"
This reverts commit 8h9i0j1.
diff --git a/file2.txt b/file2.txt
deleted file mode 100644
index 8b1a99c..0000000
--- a/file2.txt
+++ /dev/null
@@ -1 +0,0 @@
-This commit will be reverted
Lassen Sie uns diese Ausgabe analysieren:
- Der erste Teil zeigt die Commit-Details: den Commit-Hash, den Autor, das Datum und die Commit-Nachricht. Beachten Sie, dass die Nachricht ausdrücklich angibt, dass ein bestimmter Commit (identifiziert durch seinen Hash) rückgängig gemacht wird.
- Der
diff-Abschnitt zeigt die Änderungen, die durch diesen Commit vorgenommen wurden. In diesem Fall zeigt er, dassfile2.txtgelöscht wurde (deleted file mode 100644). Dies bestätigt, dass der Rückgängig-Machen-Commit die Erstellung vonfile2.txterfolgreich rückgängig gemacht hat.
Die Verwendung von git show ermöglicht es Ihnen, die genauen Änderungen zu untersuchen, die durch jeden Commit in Ihrer Historie vorgenommen wurden. Dies ist unglaublich nützlich, um die Historie Ihres Projekts zu verstehen und zu überprüfen, ob Rückgängig-Machungen oder andere Änderungen korrekt angewendet wurden.
Testen Sie nicht rückgängig gemachte Commits
In den vorherigen Schritten haben wir mehrere Commits erstellt und dann einen von ihnen rückgängig gemacht. Wir haben git log verwendet, um die Historie zu sehen, und git show, um den Rückgängig-Machen-Commit zu untersuchen. Jetzt überprüfen wir, ob die Commits, die nicht rückgängig gemacht wurden, noch existieren und die erwarteten Änderungen enthalten.
Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden:
cd ~/project/my-time-machine
Denken Sie an unsere Commit-Historie aus git log --oneline:
k2l3m4n (HEAD -> master) Revert "Add file2 (will be reverted)"
8h9i0j1 Add file2 (will be reverted)
4e5f6g7 Add more content to file1
a1b2c3d Add file1
Die Commits "Add file1" und "Add more content to file1" wurden nicht rückgängig gemacht. Verwenden wir git show, um den Commit "Add more content to file1" zu untersuchen und seine Änderungen zu sehen.
Finden Sie den Commit-Hash für "Add more content to file1" aus Ihrer git log --oneline-Ausgabe. Im obigen Beispiel ist es 4e5f6g7. Denken Sie daran, Ihren tatsächlichen Commit-Hash zu verwenden.
Verwenden Sie jetzt git show mit diesem Commit-Hash:
git show YOUR_MORE_CONTENT_COMMIT_HASH
Beispielsweise, wenn wir den Beispiel-Hash 4e5f6g7 verwenden:
git show 4e5f6g7
Sie sollten eine Ausgabe ähnlich dieser sehen:
commit 4e5f6g7
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:02:00 2023 +0000
Add more content to file1
diff --git a/file1.txt b/file1.txt
index 8b1a99c..a1b2c3d 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1 +1,2 @@
Initial content
+Adding more content
Diese Ausgabe zeigt die Details des Commits, und der diff-Abschnitt zeigt deutlich, dass eine Zeile "Adding more content" zu file1.txt hinzugefügt wurde. Dies bestätigt, dass dieser Commit und seine Änderungen immer noch Teil der Projekthistorie sind, auch wenn ein späterer Commit rückgängig gemacht wurde.
Dies zeigt einen wichtigen Aspekt von Git: Das Rückgängig-Machen eines Commits erstellt einen neuen Commit, der die Änderungen rückgängig macht. Es löscht den ursprünglichen Commit nicht aus der Historie. Dies ist wichtig, da es einen vollständigen Verlauf aller Änderungen aufrechterhält und es Ihnen ermöglicht, die vollständige Entwicklung Ihres Projekts zu verstehen.
Sie können ähnlich git show mit dem Hash des Commits "Add file1" (a1b2c3d im Beispiel) verwenden, um die ursprüngliche Erstellung von file1.txt zu sehen.
Indem Sie git log verwenden, um die Historie zu sehen, und git show, um einzelne Commits zu untersuchen, können Sie effektiv durch die Zeitlinie Ihres Projekts navigieren und verstehen, auch wenn Commits rückgängig gemacht wurden.
Zusammenfassung
In diesem Lab haben wir gelernt, wie man rückgängig gemachte Commits in einem Git-Repository identifiziert. Wir haben begonnen, indem wir eine Projekthistorie mit mehreren Commits erstellt haben, darunter einen speziell für die Rückgängigmachung vorgesehenen. Anschließend haben wir den Befehl git revert HEAD --no-edit verwendet, um einen neuen Commit zu erstellen, der die Änderungen des vorherigen Commits rückgängig macht. Dieser Prozess hat gezeigt, dass das Rückgängig-Machen eines Commits einen neuen Commit zur Historie hinzufügt, anstatt den ursprünglichen zu entfernen.
Wir werden weiterhin untersuchen, wie man git log verwendet, um diese Rückgängig-Machen-Commits zu finden, und git show, um ihren Inhalt zu überprüfen, und sie von nicht rückgängig gemachten Commits zu unterscheiden.



