So prüfen Sie, ob ein Git-Commit in einem bestimmten Branch vorhanden ist

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 feststellen können, ob ein bestimmter Git-Commit in einem bestimmten Branch vorhanden ist. Wir werden den Befehl git branch --contains untersuchen, um alle Branches zu identifizieren, die einen bestimmten Commit enthalten. Dies gibt Einblicke in die Historie des Commits und die Integrationspunkte.

Sie werden auch lernen, wie Sie git log mit einem Branch-Namen verwenden, um die Anwesenheit eines Commits in der Historie dieses Branches zu überprüfen, und wie Sie effizient mehrere Branches auf einen Commit prüfen können. Dieses Lab vermittelt Ihnen die wesentlichen Fähigkeiten, um die Historie Ihres Git-Projekts zu verstehen und zu navigieren.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) 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-560059{{"So prüfen Sie, ob ein Git-Commit in einem bestimmten Branch vorhanden ist"}} git/commit -.-> lab-560059{{"So prüfen Sie, ob ein Git-Commit in einem bestimmten Branch vorhanden ist"}} git/branch -.-> lab-560059{{"So prüfen Sie, ob ein Git-Commit in einem bestimmten Branch vorhanden ist"}} git/log -.-> lab-560059{{"So prüfen Sie, ob ein Git-Commit in einem bestimmten Branch vorhanden ist"}} end

Ausführen von git branch --contains Commit

In diesem Schritt lernen wir, wie wir den Befehl git branch --contains verwenden, um herauszufinden, welche Branches einen bestimmten Commit enthalten. Dies ist ein sehr nützlicher Befehl, wenn Sie die Historie Ihres Projekts verstehen und sehen möchten, wo eine bestimmte Änderung integriert wurde.

Zunächst stellen wir sicher, dass wir uns im Verzeichnis my-time-machine befinden. Öffnen Sie Ihr Terminal und geben Sie ein:

cd ~/project/my-time-machine

Jetzt erstellen wir eine neue Datei und machen einen Commit. Dadurch erhalten wir einen neuen Commit, mit dem wir arbeiten können.

echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add another message"

Nach dem Commit sollten Sie eine Ausgabe ähnlich dieser sehen:

[master <commit-id>] Add another message
 1 file changed, 1 insertion(+)
 create mode 100644 message2.txt

Jetzt haben wir einen neuen Commit. Finden wir die Commit-ID dieses neuen Commits. Wir können git log --oneline verwenden, um ein gekürztes Log zu sehen:

git log --oneline

Die Ausgabe sieht in etwa so aus:

<commit-id-2> (HEAD -> master) Add another message
<commit-id-1> Send a message to the future

Die erste aufgelistete Commit-ID ist die für "Add another message". Kopieren Sie diese Commit-ID.

Jetzt verwenden wir git branch --contains mit dieser Commit-ID. Ersetzen Sie <commit-id-2> durch die tatsächliche Commit-ID, die Sie kopiert haben:

git branch --contains <commit-id-2>

Die Ausgabe sollte den master-Branch anzeigen, was darauf hinweist, dass dieser Commit auf dem master-Branch liegt:

* master

Der Befehl git branch --contains <commit> ist leistungsstark, da er Ihnen hilft, die Abstammung eines Commits nachzuverfolgen. Wenn Sie mehrere Branches haben, listet dieser Befehl alle Branches auf, die diesen bestimmten Commit enthalten. Dies ist unerlässlich, um zu verstehen, wie Änderungen durch die verschiedenen Entwicklungszweige Ihres Projekts fließen.

Verwendung von git log Branch zur Überprüfung

Im vorherigen Schritt haben wir git branch --contains verwendet, um zu sehen, welche Branches einen bestimmten Commit enthalten. Jetzt verwenden wir den Befehl git log mit einem Branch-Namen, um die Historie dieses Branches zu überprüfen. Dies zeigt uns alle Commits, die Teil der Historie dieses Branches sind.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden:

cd ~/project/my-time-machine

Wir wissen aus dem vorherigen Schritt, dass unser neuestes Commit auf dem master-Branch liegt. Schauen wir uns das Log speziell für den master-Branch an:

git log master --oneline

Sie sollten eine Ausgabe ähnlich dieser sehen, die die Commits auf dem master-Branch anzeigt:

<commit-id-2> (HEAD -> master) Add another message
<commit-id-1> Send a message to the future

Diese Ausgabe bestätigt, dass beide unserer Commits tatsächlich auf dem master-Branch liegen. Die Verwendung von git log <branch-name> ist eine gute Möglichkeit, die Historie eines bestimmten Branches zu untersuchen und alle Commits zu sehen, die vom Ende dieses Branches aus erreichbar sind.

Das Vergleichen der Ausgabe von git branch --contains <commit> und git log <branch-name> hilft Ihnen, die Beziehung zwischen Commits und Branches zu verstehen. git branch --contains sagt Ihnen, welche Branches einen Commit irgendwo in ihrer Historie enthalten, während git log <branch-name> die lineare Historie bis zum Ende dieses bestimmten Branches zeigt.

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

Überprüfen mehrerer Branches

In diesem Schritt werden wir einen neuen Branch erstellen und sehen, wie sich git branch --contains verhält, wenn ein Commit auf mehreren Branches vorhanden ist. Dies verdeutlicht weiter die Stärke dieses Befehls beim Verständnis der Branch-Struktur Ihres Projekts.

Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden:

cd ~/project/my-time-machine

Jetzt erstellen wir einen neuen Branch namens feature-branch:

git branch feature-branch

Dieser Befehl erstellt einen neuen Branch, wechselt Sie aber nicht zu ihm. Sie befinden sich immer noch auf dem master-Branch.

Lassen Sie uns unsere Branches überprüfen:

git branch

Sie sollten beide Branches aufgelistet sehen, wobei master hervorgehoben ist (was darauf hinweist, dass es der aktuelle Branch ist):

* master
  feature-branch

Jetzt holen wir erneut die Commit-ID unseres neuesten Commits mit git log --oneline:

git log --oneline

Die Ausgabe wird ähnlich wie zuvor sein:

<commit-id-2> (HEAD -> master, feature-branch) Add another message
<commit-id-1> Send a message to the future

Beachten Sie, dass der neueste Commit jetzt sowohl HEAD -> master als auch feature-branch anzeigt. Dies bedeutet, dass der feature-branch an diesem Commit erstellt wurde.

Jetzt verwenden wir erneut git branch --contains mit dieser Commit-ID. Ersetzen Sie <commit-id-2> durch die tatsächliche Commit-ID:

git branch --contains <commit-id-2>

Diesmal sollte die Ausgabe beide Branches anzeigen, da der Commit in der Historie sowohl von master als auch von feature-branch vorhanden ist:

* master
  feature-branch

Dies zeigt, wie git branch --contains Ihnen alle Branches anzeigen kann, die einen bestimmten Commit in ihrer Historie haben. Dies ist unglaublich nützlich, um zu verfolgen, wo Änderungen über verschiedene Entwicklungszweige hinweg zusammengeführt oder integriert wurden.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Commit in einem bestimmten Branch vorhanden ist. Wir haben begonnen, indem wir den Befehl git branch --contains <commit-id> verwendet haben, der alle Branches auflistet, die den angegebenen Commit enthalten. Dies ist ein grundlegendes Werkzeug, um die Historie und die Integration von Änderungen in einem Git-Repository zu verstehen.

Anschließend haben wir untersucht, wie man die Anwesenheit eines Commits in einem Branch mit git log <branch-name> überprüfen kann. Dieser Befehl zeigt die Commit-Historie eines bestimmten Branches an, sodass wir visuell bestätigen können, ob der Ziel-Commit Teil der Abstammung dieses Branches ist. Schließlich haben wir gesehen, wie man diese Techniken erweitern kann, um nach einem Commit über mehrere Branches hinweg zu suchen, was einen umfassenden Überblick über seine Verteilung innerhalb der Branch-Struktur des Projekts bietet.