So prüfen Sie, ob ein Git-Commit existiert

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob ein bestimmter Git-Commit existiert, und seine Details untersuchen. Sie verwenden den Befehl git show mit einem Commit-Hash, um Informationen über einen bestimmten Commit anzuzeigen, einschließlich seines Autors, Datums, der Commit-Nachricht und der von ihm vorgenommenen Änderungen.

Darüber hinaus werden Sie untersuchen, wie Sie mithilfe von git log --all nach Commits in allen Branches suchen können und verstehen, wie Git ungültige oder nicht existierende Commit-Hashes behandelt. Dieses Lab vermittelt Ihnen die wesentlichen Fähigkeiten, um sich in der Projektgeschichte von Git zurechtzufinden und diese zu verstehen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/diff -.-> lab-560054{{"So prüfen Sie, ob ein Git-Commit existiert"}} git/log -.-> lab-560054{{"So prüfen Sie, ob ein Git-Commit existiert"}} end

Ausführen von git show mit einem Commit-Hash

In den vorherigen Schritten haben wir gelernt, wie man Commits erstellt und das Commit-Log mit git log anzeigt. Jeder Commit hat einen eindeutigen Bezeichner, oft als "Commit-Hash" oder "SHA" bezeichnet. Dieser Hash ist wie ein Fingerabdruck für diesen bestimmten Speicherpunkt in der Projektgeschichte.

Jetzt verwenden wir diesen Commit-Hash, um einen bestimmten Commit detaillierter zu untersuchen. Wir können den Befehl git show gefolgt vom Commit-Hash verwenden.

Zunächst holen wir den Commit-Hash unseres ersten Commits. Führen Sie erneut git log aus:

cd ~/project/my-time-machine
git log --oneline

Sie sollten eine Ausgabe ähnlich dieser sehen:

a1b2c3d (HEAD -> master) Send a message to the future

Die kurze Zeichenfolge am Anfang (a1b2c3d in diesem Beispiel) ist die kurze Version des Commit-Hashes. Der vollständige Hash ist viel länger, aber Git erlaubt es Ihnen, die kurze Version zu verwenden, solange sie eindeutig genug ist, um den Commit zu identifizieren.

Kopieren Sie den kurzen Commit-Hash aus Ihrer Ausgabe. Verwenden Sie nun den Befehl git show mit diesem Hash. Ersetzen Sie YOUR_COMMIT_HASH durch den kopierten Hash:

git show YOUR_COMMIT_HASH

Beispielsweise würden Sie, wenn Ihr Hash a1b2c3d war, folgenden Befehl ausführen:

git show a1b2c3d

Sie sollten detaillierte Informationen zu diesem Commit sehen, einschließlich:

  • Dem vollständigen Commit-Hash
  • Dem Autor und dem Datum
  • Der Commit-Nachricht
  • Den in diesem Commit vorgenommenen Änderungen (in diesem Fall der Hinzufügung von message.txt)
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

diff --git a/message.txt b/message.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/message.txt
@@ -0,0 +1 @@
+Hello, Future Me

Der Befehl git show ist unglaublich nützlich, um die Geschichte Ihres Projekts zu verstehen. Sie können ihn verwenden, um genau zu sehen, welche Änderungen in einem bestimmten Commit vorgenommen wurden, was für das Debugging oder das Verständnis, wie ein Feature implementiert wurde, unerlässlich ist.

Stellen Sie sich vor, Sie öffnen eine bestimmte Zeitkapsel aus der Geschichte Ihres Projekts und untersuchen ihren Inhalt detailliert. Diese Fähigkeit, vergangene Änderungen zu lokalisieren und zu untersuchen, ist ein zentraler Grund, warum Git so leistungsstark für die Verwaltung von Projekten jeder Größe ist.

Verwenden von git log --all zum Suchen von Commits

In den vorherigen Schritten haben wir gesehen, wie git log die Historie des aktuellen Branches anzeigt. Aber was ist, wenn Ihr Projekt mehrere Branches (verschiedene Zeitlinien) hat? Der grundlegende git log-Befehl zeigt nur die Historie des Branches an, auf dem Sie sich derzeit befinden.

Um die Historie aller Branches in Ihrem Repository anzuzeigen, können Sie die Option --all mit git log verwenden. Dies ist wie das gleichzeitige Betrachten aller verschiedenen Zeitlinien in Ihrer Zeitmaschine.

Probieren wir es aus:

cd ~/project/my-time-machine
git log --all

Da wir bisher nur einen Branch (master) und einen Commit haben, wird die Ausgabe sehr ähnlich der Ausgabe des grundlegenden git log-Befehls aussehen:

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

Wenn Ihr Projekt wächst und Sie mehr Branches erstellen, wird git log --all viel nützlicher werden. Es hilft Ihnen, die gesamte Historie Ihres Projekts zu visualisieren, einschließlich Commits auf verschiedenen Branches, die möglicherweise nicht direkt mit Ihrem aktuellen Branch verbunden sind.

Sie können auch --all mit anderen git log-Optionen wie --oneline kombinieren, um eine kompaktere Ansicht der Historie aller Branches zu erhalten:

git log --all --oneline

Dies zeigt eine Zusammenfassung jedes Commits auf jedem Branch an:

a1b2c3d (HEAD -> master) Send a message to the future

Das Verwenden von git log --all ist eine großartige Möglichkeit, einen umfassenden Überblick über die Entwicklungsgeschichte Ihres Projekts zu erhalten. Es ist wie das Betrachten einer Karte aller verschiedenen Pfade, die Ihr Projekt eingeschlagen hat.

Denken Sie daran, q zu drücken, um die Log-Ansicht zu verlassen.

Umgang mit ungültigen Commit-Hashes

In den vorherigen Schritten haben wir einen gültigen Commit-Hash mit git show verwendet. Aber was passiert, wenn Sie versuchen, einen Hash zu verwenden, der nicht existiert oder falsch ist? Git ist intelligent, aber es benötigt eine gültige Referenz, um zu wissen, welchen Commit Sie interessiert.

Versuchen wir, git show mit einem ungültigen Commit-Hash zu verwenden. Geben Sie eine zufällige Zeichenfolge ein, die definitiv kein gültiger Commit-Hash aus Ihrem Log ist:

cd ~/project/my-time-machine
git show abcdefg

Sie sollten eine Fehlermeldung ähnlich dieser sehen:

fatal: bad object abcdefg

Diese Meldung sagt Ihnen, dass Git kein Objekt (in diesem Fall einen Commit) mit dem Hash abcdefg finden konnte. Dies ist Git's Art zu sagen: "Ich weiß nicht, welchen Speicherpunkt Sie meinen!"

Das Verständnis, wie Git ungültige Eingaben behandelt, ist wichtig. Wenn Sie eine "bad object"-Fehlermeldung sehen, bedeutet dies normalerweise, dass der Commit-Hash oder eine andere Referenz, die Sie angegeben haben, falsch ist oder nicht in der Historie Ihres Repositorys existiert.

Dies kann passieren, wenn Sie einen Hash falsch eintippen oder wenn Sie versuchen, auf einen Commit aus einem anderen Repository oder einem gelöschten Branch zu verweisen.

Wenn Sie diese Fehlermeldung erhalten, überprüfen Sie den von Ihnen verwendeten Commit-Hash noch einmal. Sie können git log oder git log --oneline verwenden, um den richtigen Hash für den Commit zu finden, den Sie untersuchen möchten.

Dieser Schritt unterstreicht die Wichtigkeit der Verwendung korrekter Commit-Hashes beim Navigieren durch die Historie Ihres Projekts. Genau wie eine Zeitmaschine die richtigen Koordinaten benötigt, um zu einem bestimmten Zeitpunkt zu reisen, benötigt Git den richtigen Hash, um Ihnen einen bestimmten Commit anzuzeigen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Commit existiert, und dessen Details untersucht. Wir haben begonnen, den git show-Befehl mit einem bestimmten Commit-Hash zu verwenden, der aus git log --oneline erhalten wurde. Dies hat es uns ermöglicht, umfassende Informationen über einen Commit anzuzeigen, einschließlich seines Autors, Datums, der Commit-Nachricht und der genauen vorgenommenen Änderungen. Wir haben auch untersucht, wie man git log --all verwendet, um Commits über alle Branches hinweg zu suchen, was nützlich ist, um Commits zu finden, die möglicherweise nicht auf dem aktuellen Branch liegen. Schließlich haben wir gelernt, wie Git ungültige oder nicht existierende Commit-Hashes behandelt. Dies zeigt, dass git show einen Fehler meldet, wenn der angegebene Hash nicht in der Historie des Repositorys gefunden wird.