Wie man prüft, ob ein Git-Branch bestimmte Commits enthält

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 werden wir lernen, wie man prüft, ob ein Git-Branch bestimmte Commits enthält. Wir beginnen damit, den Befehl git log und seine Filteroptionen zu erkunden, um Commits anhand des Commit-Nachrichtentexts oder des Autors zu suchen. Anschließend nutzen wir den Befehl git branch --contains, um effizient zu bestimmen, welche Branches einen bestimmten Commit enthalten. Abschließend überprüfen wir unsere Ergebnisse, indem wir direkt anhand des Commit-Hashes prüfen, ob ein Commit vorhanden ist.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560039{{"Wie man prüft, ob ein Git-Branch bestimmte Commits enthält"}} git/commit -.-> lab-560039{{"Wie man prüft, ob ein Git-Branch bestimmte Commits enthält"}} git/branch -.-> lab-560039{{"Wie man prüft, ob ein Git-Branch bestimmte Commits enthält"}} git/log -.-> lab-560039{{"Wie man prüft, ob ein Git-Branch bestimmte Commits enthält"}} end

Ausführen von git log zur Suche nach Commits

In diesem Schritt werden wir untersuchen, wie man den Befehl git log verwendet, um nach bestimmten Commits in der Projektgeschichte zu suchen. Wenn Ihr Projekt wächst und Sie mehr Commits erstellen, kann die Ausgabe von git log sehr lang werden. Git bietet leistungsstarke Optionen, um diese Historie zu filtern und zu durchsuchen.

Zunächst stellen wir sicher, dass wir uns im Projektverzeichnis befinden:

cd ~/project/my-time-machine

Jetzt fügen wir ein paar weitere Commits hinzu, damit wir eine Historie haben, die wir durchsuchen können. Wir erstellen eine neue Datei und ändern eine bestehende Datei.

Erstellen Sie eine neue Datei:

echo "This is my second file." > second_file.txt

Fügen Sie die neue Datei hinzu und committen Sie sie:

git add second_file.txt
git commit -m "Add a second file"

Sie sollten eine Ausgabe ähnlich dieser sehen:

[master a1b2c3d] Add a second file
 1 file changed, 1 insertion(+)
 create mode 100644 second_file.txt

Jetzt ändern wir die Datei message.txt:

echo "Adding another line." >> message.txt

Fügen Sie die Änderung hinzu und committen Sie sie:

git add message.txt
git commit -m "Update message.txt"

Sie sollten eine Ausgabe ähnlich dieser sehen:

[master e4f5g6h] Update message.txt
 1 file changed, 1 insertion(+)

Nachdem wir nun mehrere Commits haben, verwenden wir git log, um die Historie anzuzeigen:

git log

Sie sollten alle drei Commits aufgelistet sehen. Drücken Sie q, um die Log-Ansicht zu verlassen.

Um nach Commits zu suchen, die ein bestimmtes Wort in der Commit-Nachricht enthalten, können wir die Option --grep verwenden. Suchen wir nach Commits mit dem Wort "message":

git log --grep "message"

Dieser Befehl zeigt nur die Commits an, deren Nachrichten das Wort "message" enthalten. Sie sollten den ersten und den dritten Commit sehen.

Sie können auch nach Commits eines bestimmten Autors suchen, indem Sie die Option --author verwenden. Suchen wir nach Commits, die von "Jane Doe" (dem Namen, den wir in der Einrichtung konfiguriert haben) gemacht wurden:

git log --author "Jane Doe"

Dies zeigt alle Commits an, die vom Autor "Jane Doe" gemacht wurden. In diesem Fall sollten alle drei Commits angezeigt werden.

Das Verwenden von git log mit Optionen wie --grep und --author ist unerlässlich, um in größeren Projekten zu navigieren und bestimmte Änderungen oder Beiträge zu finden. Es ist wie ein leistungsstarker Suchmotor für die Projektgeschichte!

Verwenden von git branch --contains zur Commit-Prüfung

In diesem Schritt werden wir lernen, wie man den Befehl git branch --contains verwendet, um herauszufinden, welche Branches einen bestimmten Commit enthalten. Dies ist nützlich, wenn Sie mehrere Branches haben und wissen möchten, wo sich eine bestimmte Änderung befindet.

Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden:

cd ~/project/my-time-machine

Erstellen wir einen neuen Branch, um diesen Befehl zu demonstrieren. Wir nennen ihn feature-branch:

git branch feature-branch

Dieser Befehl erstellt einen neuen Branch, wechselt aber nicht zu ihm. Sie können Ihre Branches mit git branch anzeigen:

git branch

Sie sollten etwas wie Folgendes sehen, wobei master hervorgehoben ist (was darauf hinweist, dass es der aktuelle Branch ist):

* master
  feature-branch

Jetzt holen wir uns den Hash unseres ersten Commits. Wir können git log --oneline verwenden, um ein gekürztes Log mit Commit-Hashes anzuzeigen:

git log --oneline

Sie sollten eine Ausgabe ähnlich dieser sehen (Ihre Hashes werden unterschiedlich sein):

e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future

Kopieren Sie den Hash des ersten Commits ("Send a message to the future"). Im obigen Beispiel ist es abcdef0.

Jetzt verwenden wir git branch --contains mit dem Hash des ersten Commits:

git branch --contains abcdef0

Ersetzen Sie abcdef0 durch den tatsächlichen Hash Ihres ersten Commits.

Die Ausgabe sollte sowohl master als auch feature-branch anzeigen:

* master
  feature-branch

Dies zeigt uns, dass der Commit "Send a message to the future" sowohl auf dem master-Branch als auch auf dem feature-branch-Branch existiert. Dies ist sinnvoll, da wir feature-branch auf dem master-Branch erstellt haben und der erste Commit bereits Teil von master war.

Jetzt holen wir uns den Hash des letzten Commits ("Update message.txt"). Im obigen Beispiel ist es e4f5g6h.

Verwenden Sie git branch --contains mit dem Hash des letzten Commits:

git branch --contains e4f5g6h

Ersetzen Sie e4f5g6h durch den tatsächlichen Hash Ihres letzten Commits.

Die Ausgabe sollte nur master anzeigen:

* master

Dies liegt daran, dass der letzte Commit auf dem master-Branch nach der Erstellung von feature-branch gemacht wurde. Daher enthält feature-branch diesen Commit nicht.

Der Befehl git branch --contains ist ein leistungsstarkes Werkzeug, um die Beziehung zwischen Commits und Branches zu verstehen und zu verfolgen, wo bestimmte Änderungen integriert wurden.

Überprüfung mit Commit-Hash

In diesem Schritt üben wir die Verwendung von Commit-Hashes, um auf bestimmte Punkte in der Projektgeschichte zu verweisen. Jeder Commit in Git hat einen eindeutigen Hash, der wie seine Fingerabdruck fungiert. Sie können diesen Hash verwenden, um die Details eines bestimmten Commits anzuzeigen oder sogar zu diesem Zeitpunkt zurückzukehren.

Zunächst stellen Sie sicher, dass Sie sich im Projektverzeichnis befinden:

cd ~/project/my-time-machine

Lassen Sie uns erneut das Commit-Log anzeigen, um die Hashes zu erhalten:

git log --oneline

Sie sollten eine Ausgabe ähnlich dieser sehen (Ihre Hashes werden unterschiedlich sein):

e4f5g6h (HEAD -> master) Update message.txt
a1b2c3d Add a second file
abcdef0 Send a message to the future

Jetzt lassen Sie uns die Details des ersten Commits anhand seines Hashes anzeigen. Kopieren Sie den Hash des ersten Commits ("Send a message to the future"). Im obigen Beispiel ist es abcdef0.

Verwenden Sie den Befehl git show gefolgt vom Commit-Hash:

git show abcdef0

Ersetzen Sie abcdef0 durch den tatsächlichen Hash Ihres ersten Commits.

Dieser Befehl zeigt detaillierte Informationen zu diesem bestimmten Commit an, einschließlich des Autors, des Datums, der Commit-Nachricht und der in diesem Commit vorgenommenen Änderungen. Sie werden feststellen, dass die Datei message.txt in diesem Commit erstellt wurde.

Drücken Sie q, um die git show-Ansicht zu verlassen.

Jetzt lassen Sie uns die Details des zweiten Commits ("Add a second file") anzeigen. Kopieren Sie seinen Hash aus der git log --oneline-Ausgabe. Im obigen Beispiel ist es a1b2c3d.

Verwenden Sie git show mit dem Hash des zweiten Commits:

git show a1b2c3d

Ersetzen Sie a1b2c3d durch den tatsächlichen Hash Ihres zweiten Commits.

Dies zeigt die Details des zweiten Commits an, in dem die Datei second_file.txt erstellt wurde.

Schließlich lassen Sie uns die Details des letzten Commits ("Update message.txt") anzeigen. Kopieren Sie seinen Hash. Im obigen Beispiel ist es e4f5g6h.

Verwenden Sie git show mit dem Hash des letzten Commits:

git show e4f5g6h

Ersetzen Sie e4f5g6h durch den tatsächlichen Hash Ihres letzten Commits.

Dies zeigt die Details des letzten Commits an, in dem eine Zeile zur Datei message.txt hinzugefügt wurde.

Das Verwenden von git show mit Commit-Hashes ermöglicht es Ihnen, den Inhalt und die Änderungen eines beliebigen bestimmten Commits in der Projektgeschichte zu untersuchen. Dies ist unglaublich nützlich für das Debugging, das Verständnis, wie ein Feature implementiert wurde, oder einfach für die Überprüfung vergangener Arbeit.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Branch bestimmte Commits enthält. Wir haben zunächst den Befehl git log und seine Filteroptionen untersucht, wie z.B. --grep zum Suchen in Commit-Nachrichten und --author zum Suchen nach Autor, um Commits in der Projektgeschichte zu finden.

Als Nächstes werden wir lernen, wie man den Befehl git branch --contains verwendet, um direkt zu prüfen, ob ein Branch einen bestimmten Commit enthält. Abschließend werden wir dies mithilfe des Commit-Hashes verifizieren.