So prüfen Sie, ob ein Git-Commit in der aktuellen Branch 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 (Git-Commit) in der aktuellen Branch (Branch) vorhanden ist. Wir beginnen damit, den Befehl git log und seine verschiedenen Optionen für die effiziente Suche und Filterung des Commit-Verlaufs zu erkunden. Dazu gehört die Verwendung von --grep zur Suche in Commit-Nachrichten und --author zur Filterung nach Autor.

Danach lernen Sie, wie Sie den Befehl git branch --contains verwenden, um zu ermitteln, welche Branches (Branches) in Ihrem Repository einen bestimmten Commit (Commit) enthalten. Diese praktische Übung wird Sie mit den Fähigkeiten ausstatten, um effektiv durch den Commit-Verlauf Ihres Projekts in verschiedenen Branches (Branches) zu navigieren und ihn zu verstehen.


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/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560060{{"So prüfen Sie, ob ein Git-Commit in der aktuellen Branch ist"}} git/commit -.-> lab-560060{{"So prüfen Sie, ob ein Git-Commit in der aktuellen Branch ist"}} git/branch -.-> lab-560060{{"So prüfen Sie, ob ein Git-Commit in der aktuellen Branch ist"}} git/checkout -.-> lab-560060{{"So prüfen Sie, ob ein Git-Commit in der aktuellen Branch ist"}} git/log -.-> lab-560060{{"So prüfen Sie, ob ein Git-Commit in der aktuellen Branch ist"}} end

Verwenden von git log zum Finden von Commits

In diesem Schritt lernen wir, wie wir den Befehl git log verwenden, um bestimmte Commits (Commits) in der Historie unseres Projekts zu finden. Wenn Ihr Projekt wächst und Sie mehr Commits (Commits) erstellen, kann die Ausgabe von git log ziemlich lang werden. Git bietet leistungsstarke Optionen, um den Log zu filtern und zu durchsuchen.

Zunächst erstellen wir noch ein paar Commits (Commits), damit wir eine Historie haben, mit der wir arbeiten können. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.

cd ~/project/my-time-machine
echo "Adding a second message" >> message.txt
git add message.txt
git commit -m "Add a second message"
echo "Adding a third message" >> message.txt
git add message.txt
git commit -m "Add a third message"

Jetzt lassen wir uns erneut den vollständigen Log anzeigen:

git log

Sie werden drei Commits (Commits) aufgelistet sehen, wobei der neueste oben steht.

Manchmal suchen Sie möglicherweise nach einem Commit (Commit), dessen Nachricht ein bestimmtes Wort enthält. Sie können dazu die Option --grep verwenden. Versuchen wir, den Commit (Commit) mit der Nachricht "second message" zu finden:

git log --grep "second message"

Dieser Befehl zeigt nur den Commit (Commit) an, dessen Nachricht die Phrase "second message" enthält.

Eine weitere nützliche Option ist --author, um Commits (Commits) eines bestimmten Autors zu finden. Da wir unseren Autorennamen bei der Einrichtung konfiguriert haben, versuchen wir, Commits (Commits) von "Jane Doe" zu finden:

git log --author "Jane Doe"

Dies zeigt alle Commits (Commits) an, die von "Jane Doe" vorgenommen wurden.

Schließlich können Sie die Anzahl der angezeigten Commits (Commits) mit der Option -n begrenzen. Beispielsweise, um nur die letzten beiden Commits (Commits) anzuzeigen:

git log -n 2

Die Verwendung dieser Optionen mit git log hilft Ihnen, effizient durch die Historie Ihres Projekts zu navigieren, insbesondere in größeren Projekten mit vielen Commits (Commits).

Ausführen von git branch --contains für einen Commit

In diesem Schritt werden wir untersuchen, wie man den Befehl git branch --contains verwendet. Dieser Befehl ist nützlich, um herauszufinden, welche Branches (Branches) einen bestimmten Commit (Commit) enthalten. Dies ist besonders hilfreich, wenn Sie mehrere Branches (Branches) haben und verfolgen müssen, wo eine bestimmte Änderung aufgenommen wurde.

Zunächst holen wir uns den Commit-Hash (Commit-Hash) eines unserer vorherigen Commits (Commits). Wir können git log --oneline verwenden, um eine komprimierte Ansicht des Logs zu sehen und einen Commit-Hash (Commit-Hash) einfach kopieren zu können. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.

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

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

abcdefg (HEAD -> master) Add a third message
hijklmn Add a second message
opqrstu Send a message to the future

Kopieren Sie den Commit-Hash (Commit-Hash) des ersten Commits (Commits), den Sie gemacht haben ("Send a message to the future"). Im obigen Beispiel ist es opqrstu.

Jetzt verwenden wir git branch --contains mit diesem Commit-Hash (Commit-Hash). Ersetzen Sie [commit_hash] durch den tatsächlichen Hash, den Sie kopiert haben:

git branch --contains [commit_hash]

Beispielsweise, wenn wir den Hash aus der Beispielausgabe verwenden:

git branch --contains opqrstu

Die Ausgabe sollte * master anzeigen. Das Sternchen * gibt die aktuell ausgecheckte Branch (Branch) an. Dies sagt uns, dass der Commit (Commit) opqrstu auf der master-Branch (Branch) vorhanden ist.

Zurzeit haben wir nur eine Branch (Branch) (master), daher ist die Ausgabe einfach. Im nächsten Schritt werden wir eine weitere Branch (Branch) erstellen und sehen, wie sich die Ausgabe von git branch --contains ändert.

Das Verständnis, welche Branches (Branches) einen bestimmten Commit (Commit) enthalten, ist entscheidend für die Verwaltung der Historie Ihres Projekts und die Koordination der Arbeit über verschiedene Entwicklungszweige hinweg.

Testen mit anderen Branches

In diesem Schritt werden wir einen neuen Branch (Branch) erstellen und einen Commit (Commit) darauf machen, um zu sehen, wie sich git branch --contains verhält, wenn ein Commit (Commit) nur auf einer Branch (Branch) vorhanden ist. Dies wird Ihnen helfen, Ihr Verständnis davon zu festigen, wie Git Commits (Commits) über verschiedene Entwicklungszweige hinweg verfolgt.

Zunächst erstellen wir einen neuen Branch (Branch) namens feature-branch. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.

cd ~/project/my-time-machine
git branch feature-branch

Jetzt wechseln wir zu unserem neuen Branch (Branch):

git checkout feature-branch

Sie sollten eine Ausgabe sehen, die anzeigt, dass Sie zu dem neuen Branch (Branch) gewechselt haben:

Switched to branch 'feature-branch'

Machen wir einen neuen Commit (Commit) auf diesem feature-branch.

echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"

Jetzt holen wir uns den Commit-Hash (Commit-Hash) dieses neuen Commits (Commits) mit git log --oneline:

git log --oneline

Die Ausgabe zeigt Ihren neuen Commit (Commit) oben, gefolgt von den vorherigen Commits (Commits). Kopieren Sie den Hash des Commits (Commits) "Add a new feature file".

Jetzt verwenden wir git branch --contains mit dem Hash des Commits (Commits) "Add a new feature file". Ersetzen Sie [feature_commit_hash] durch den tatsächlichen Hash, den Sie kopiert haben:

git branch --contains [feature_commit_hash]

Die Ausgabe sollte nur * feature-branch anzeigen. Dies liegt daran, dass dieser spezifische Commit (Commit) nach der Erstellung und dem Wechsel zu feature-branch gemacht wurde, sodass er nur in der Historie dieser Branch (Branch) existiert.

Jetzt versuchen wir git branch --contains erneut mit dem Hash des allerersten Commits (Commits) ("Send a message to the future"). Ersetzen Sie [first_commit_hash] durch den Hash, den Sie im vorherigen Schritt verwendet haben:

git branch --contains [first_commit_hash]

Diesmal sollte die Ausgabe sowohl feature-branch als auch * master anzeigen. Dies liegt daran, dass der feature-branch von der master-Branch (Branch) erstellt wurde, sodass er alle Commits (Commits) enthält, die sich zu diesem Zeitpunkt auf master befanden, einschließlich des ersten Commits (Commits).

Dies zeigt, wie git branch --contains Ihnen helfen kann, die Beziehung zwischen Branches (Branches) und den Commits (Commits), die sie enthalten, zu verstehen.

Zusammenfassung

In diesem Lab (Lab) haben wir gelernt, wie man prüft, ob ein Git-Commit (Git-Commit) in der aktuellen Branch (Branch) vorhanden ist. Wir haben zunächst den Befehl git log und seine verschiedenen Optionen wie --grep, --author und -n untersucht, um die Commit-Historie (Commit-Historie) effizient zu durchsuchen und zu filtern. Dies ist entscheidend für die Navigation in Projekten mit zahlreichen Commits (Commits).

Danach haben wir gelernt, wie man den Befehl git branch --contains verwendet, um zu ermitteln, welche Branches (Branches) einen bestimmten Commit (Commit) enthalten. Dieser Befehl ist wertvoll, um die Ausbreitung von Änderungen über verschiedene Branches (Branches) in einem Git-Repository (Git-Repository) zu verfolgen.