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.
Führen Sie 'git branch --contains' für einen Commit aus
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.
Verwenden Sie 'git log' für einen 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.
Mehrere Branches überprüfen
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.



