Verlauf und Änderungen

GitBeginner
Jetzt üben

Einführung

In den vorherigen Labs haben Sie gelernt, eine „Zeitmaschine“ (ein Git-Repository) zu initialisieren und Ihren ersten Schnappschuss zu speichern. Ein Projekt bleibt jedoch nicht unverändert – es entwickelt sich weiter. Sie beheben Fehler, fügen Funktionen hinzu und aktualisieren die Dokumentation.

Git eignet sich hervorragend, um diese Entwicklung nachzuverfolgen. Sie können damit:

  1. Änderungen überprüfen: Genau sehen, welche Zeilen Sie geändert haben, bevor Sie sie speichern.
  2. Den Verlauf überprüfen: Jeden bisher gespeicherten Schnappschuss ansehen und feststellen, wer wann welche Änderungen vorgenommen hat.

Das ist der eigentliche Nutzen der Versionskontrolle: Sie erstellt nicht nur Sicherungskopien, sondern bewahrt einen strukturierten Verlauf darüber, wie sich ein Projekt im Laufe der Zeit verändert hat.

In diesem Lab ändern Sie eine Datei, untersuchen die genauen Unterschiede mit git diff, speichern einen neuen Schnappschuss und sehen sich anschließend den Projektverlauf mit git log an. Diese grundlegende Prüfschleife wird in echten Git-Workflows ständig verwendet.

Eine Projektdatei ändern

Wir beginnen mit einem Repository, das bereits einen Commit (den „Initial commit“) enthält. Simulieren wir nun, dass Sie an diesem Projekt arbeiten.

Wechseln Sie in das Projektverzeichnis:

cd /home/labex/project

Prüfen Sie den aktuellen Inhalt von readme.txt:

cat readme.txt

Sie sollten Folgendes sehen: Hello World

Ändern Sie die Datei, indem Sie eine neue Zeile anhängen. Fügen Sie eine einfache Beschreibung hinzu:

echo "Git is a version control system" >> readme.txt

Prüfen Sie, ob sich die Datei geändert hat:

cat readme.txt

Ausgabe:

Hello World
Git is a version control system

Git hat erkannt, dass sich readme.txt von der Version unterscheidet, die im letzten Schnappschuss gespeichert wurde. Die Datei gilt jetzt als Modified.

Änderungen mit Git Diff untersuchen

Bevor Sie Ihre Arbeit speichern, sollten Sie genau überprüfen, was Sie geändert haben. Das ist vergleichbar mit dem Korrekturlesen eines Aufsatzes vor der Abgabe.

Git stellt dafür den Befehl diff bereit. Er vergleicht die Datei in Ihrem Arbeitsverzeichnis mit der Datei im letzten Commit (Schnappschuss).

git diff vergleicht also zwei Zustände: den im Verlauf gespeicherten Zustand und den Zustand, der aktuell in Ihrem Arbeitsbaum vorhanden ist. Der Befehl gehört zu den wichtigsten Werkzeugen, um Änderungen zu prüfen, bevor Sie sie dauerhaft festhalten.

Führen Sie git diff aus, um die Änderungen anzuzeigen:

git diff

Untersuchen Sie die Ausgabe:

diff --git a/readme.txt b/readme.txt
index ...
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
 Hello World
+Git is a version control system
  • --- a/readme.txt: Die ursprüngliche Version (alt).
  • +++ b/readme.txt: Die aktuelle Version (neu).
  • +Git is...: Das Pluszeichen (+) kennzeichnet eine neu hinzugefügte Zeile. (Ein Minuszeichen - würde eine entfernte Zeile kennzeichnen.)

Die Ausgabe eines Diff zu lesen, ist eine grundlegende Git-Fähigkeit, weil sie Änderungen auf Zeilenebene zeigt. Viele spätere Abläufe wie Code-Reviews, das Anwenden von Patches und Pull Requests bauen auf derselben Idee auf.

Dieser Schritt bestätigt, dass Ihre Änderungen genau Ihren Vorstellungen entsprechen.

Änderungen mit Git Commit speichern

Nachdem Sie die Änderungen überprüft haben, speichern Sie nun einen neuen Schnappschuss. Denken Sie an den zweistufigen Ablauf: Stage (auf die Laderampe legen) und Commit (den Schnappschuss aufnehmen).

Prüfen Sie zuerst den Status:

git status

Unter „Changes not staged for commit“ wird readme.txt in roter Farbe angezeigt.

Stagen Sie die Datei:

git add readme.txt

Prüfen Sie den Status erneut:

git status

Jetzt wird readme.txt unter „Changes to be committed“ in grüner Farbe angezeigt.

Dies ist ein weiteres Beispiel für die Trennung zwischen geänderten und gestagten Inhalten in Git. Eine Änderung kann bereits in Ihrer Datei vorhanden sein. Solange Sie sie jedoch nicht stagen, gehört sie nicht zum nächsten möglichen Commit.

Committen Sie den Schnappschuss mit einer aussagekräftigen Nachricht:

git commit -m "Add description about Git"
  • -m: Damit können Sie die Commit-Nachricht direkt angeben.
  • Die Nachricht sollte beschreiben, was Sie geändert haben.

Sie haben nun die zweite Version Ihres Projektverlaufs gespeichert!

Den Projektverlauf anzeigen

Ihr Repository enthält jetzt zwei Commits. Verwenden Sie den Befehl git log, um die zeitliche Entwicklung Ihres Projekts anzuzeigen. Dies ist Ihr „Geschichtsbuch“.

Zeigen Sie den vollständigen Verlauf an:

git log

Untersuchen Sie die Ausgabe:

commit 8d3a1b2... (SHA Hash)
Author: Your Name <you@example.com>
Date:   Mon Oct 10 10:00:00 2023 +0000

    Add description about Git

commit 4f2b3c4... (SHA Hash)
Author: Your Name <you@example.com>
Date:   Mon Oct 10 09:00:00 2023 +0000

    Initial commit
  • SHA Hash: Die lange ID-Zeichenfolge (z. B. 8d3a...). Sie ist ein eindeutiger Fingerabdruck für diesen bestimmten Schnappschuss.
  • HEAD: (Falls sichtbar) Ein Zeiger, der angibt, an welcher Stelle Sie sich aktuell befinden.
  • Reihenfolge: Der neueste Commit steht immer oben.

Diese Hashes sind zentral dafür, wie Git den Verlauf identifiziert. Anstatt Commits mit fortlaufenden Nummern zu benennen, verwendet Git inhaltsbasierte Bezeichner, sodass jeder Schnappschuss eine eindeutige Referenz besitzt.

(Falls erforderlich, drücken Sie q, um die Verlaufsanzeige zu verlassen.)

Einen kompakten Verlauf anzeigen

Wenn Sie mehrere Monate an einem Projekt arbeiten, kann die vollständige Ausgabe von git log zu lang und detailliert werden. Manchmal benötigen Sie nur eine kurze Zusammenfassung.

Git stellt dafür die Option --oneline bereit.

Führen Sie den Befehl für den kompakten Verlauf aus:

git log --oneline

Prüfen Sie die Ausgabe:

8d3a1b2 Add description about Git
4f2b3c4 Initial commit

Diese Ansicht zeigt nur den kurzen Hash und die Commit-Nachricht, jeweils eine Zeile pro Commit. Sie eignet sich ideal, um schnell zu prüfen, was zuletzt geschehen ist.

Herausforderung:

Ändern Sie readme.txt noch einmal (fügen Sie eine weitere Zeile hinzu), committen Sie die Änderung und führen Sie anschließend erneut git log --oneline aus. Sie sollten jetzt drei Einträge sehen!

Zusammenfassung

In diesem Lab haben Sie gelernt, den Lebenszyklus von Änderungen in einem Projekt zu verwalten:

  1. Ändern: Sie haben Änderungen an einer Datei vorgenommen.
  2. Untersuchen: Sie haben git diff verwendet, um diese Änderungen zu überprüfen.
  3. Committen: Sie haben mit git add und git commit einen dauerhaften Schnappschuss gespeichert.
  4. Überprüfen: Sie haben den zeitlichen Verlauf mit git log und git log --oneline untersucht.

Diese vier Befehle bilden den Kern der täglichen Arbeit mit Git. Wenn Sie sie beherrschen, beherrschen Sie die Grundlagen der Versionskontrolle.