Wie man prüft, ob ein Git-Branch gemerged wurde

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 effektiv prüfen können, ob ein Git-Branch in einen anderen Branch gemerged wurde. Wir werden die primäre Methode mithilfe des Befehls git branch --merged untersuchen, seine Verwendung demonstrieren und seine Ausgabe interpretieren.

Darüber hinaus werden wir den Merge-Status überprüfen, indem wir das Git-Log auf das Vorhandensein von Merge-Commits untersuchen und das Verhalten der Befehle mit ungemergten Branches testen, um Ihr Verständnis zu festigen. Dieser praktische Ansatz wird Sie mit den Fähigkeiten ausstatten, um Ihre Git-Branches sicher zu verwalten und ein sauberes Repository aufrechtzuerhalten.


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/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/merge("Merge Histories") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/status -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/commit -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/branch -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/checkout -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/merge -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} git/log -.-> lab-560046{{"Wie man prüft, ob ein Git-Branch gemerged wurde"}} end

Verwendung von git branch --merged zur Prüfung

In diesem Schritt lernen wir, wie man den Befehl git branch --merged verwendet, um zu sehen, welche Branches vollständig in den aktuellen Branch integriert wurden. Dies ist ein sehr nützlicher Befehl, um Ihr Repository aufzuräumen und den Zustand Ihres Projekts zu verstehen.

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

cd ~/project/my-time-machine

Jetzt erstellen wir einen neuen Branch und machen einen Commit darauf. Dies simuliert einen üblichen Arbeitsablauf, bei dem Sie an einer Funktion in einem separaten Branch arbeiten.

git branch feature/add-greeting
git checkout feature/add-greeting
echo "Greetings from the feature branch!" >> greeting.txt
git add greeting.txt
git commit -m "Add greeting file"

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

[feature/add-greeting a1b2c3d] Add greeting file
 1 file changed, 1 insertion(+)
 create mode 100644 greeting.txt

Jetzt wechseln wir zurück zum master-Branch:

git checkout master

Sie sollten eine Ausgabe sehen, die anzeigt, dass Sie den Branch gewechselt haben:

Switched to branch 'master'

Jetzt mergen wir den feature/add-greeting-Branch in den master-Branch:

git merge feature/add-greeting

Sie sollten eine Ausgabe sehen, die anzeigt, dass das Mergen erfolgreich war:

Updating a1b2c3d..e4f5g6h
Fast-forward
 greeting.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 greeting.txt

Nachdem wir den feature/add-greeting-Branch in den master-Branch gemerged haben, verwenden wir git branch --merged, um zu sehen, welche Branches jetzt in den aktuellen Branch (master) gemerged sind.

git branch --merged

Sie sollten eine Ausgabe ähnlich dieser sehen:

* master
  feature/add-greeting

Das * zeigt den aktuellen Branch (master) an. Die Ausgabe zeigt, dass sowohl master als auch feature/add-greeting aufgeführt sind. Dies bedeutet, dass alle Commits aus feature/add-greeting jetzt im master-Branch vorhanden sind.

Das Verständnis, welche Branches gemerged sind, ist wichtig, da es Ihnen hilft, Branches zu identifizieren, die nicht mehr benötigt werden und sicher gelöscht werden können. Dies hält Ihr Repository sauber und organisiert.

Überprüfung mit git log auf Merge-Commit

Im vorherigen Schritt haben wir den feature/add-greeting-Branch in den master-Branch gemerged. Jetzt verwenden wir den Befehl git log, um die Commit-Historie anzuzeigen und zu bestätigen, dass der Merge-Commit vorhanden ist.

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

Führen Sie den Befehl git log aus:

git log

Sie sollten eine Liste von Commits sehen, wobei der neueste oben steht. Suchen Sie nach einer Commit-Nachricht, die einen Merge anzeigt. Sie sieht wahrscheinlich so aus:

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

    Merge branch 'feature/add-greeting'

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (feature/add-greeting)
Author: Jane Doe <[email protected]>
Date:   Mon Aug 7 10:03:00 2023 +0000

    Add greeting file

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

    Send a message to the future

Beachten Sie den Commit mit der Nachricht "Merge branch 'feature/add-greeting'". Dies ist der Merge-Commit, den Git automatisch erstellt hat, als wir den feature/add-greeting-Branch in den master-Branch gemerged haben. Dieser Commit hat zwei Eltern-Commits, die in der Zeile "Merge:" angegeben sind. Ein Eltern-Commit ist die Spitze des master-Branches vor dem Merge, und der andere ist die Spitze des feature/add-greeting-Branches.

Der Befehl git log ist unerlässlich, um die Historie Ihres Projekts zu verstehen. Er ermöglicht es Ihnen, alle Commits zu sehen, wer sie gemacht hat, wann sie gemacht wurden und welche Änderungen in jedem Commit enthalten waren. Dies ist unglaublich wertvoll für das Debugging, das Nachverfolgen des Fortschritts und die Zusammenarbeit mit anderen.

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

Test mit nicht gemergten Branches

In den vorherigen Schritten haben wir gesehen, wie git branch --merged Branches anzeigt, die vollständig integriert wurden. Jetzt schauen wir uns an, was passiert, wenn wir einen Branch haben, der nicht in den aktuellen Branch gemerged wurde.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden und sich auf dem master-Branch befinden. Sie können dies mit git status überprüfen.

Erstellen wir einen neuen Branch namens feature/add-farewell und wechseln wir zu ihm:

git branch feature/add-farewell
git checkout feature/add-farewell

Sie sollten eine Ausgabe sehen, die anzeigt, dass Sie den Branch gewechselt haben:

Switched to branch 'feature/add-farewell'

Jetzt erstellen wir eine neue Datei und machen einen Commit auf diesem Branch:

echo "Farewell from the farewell branch!" > farewell.txt
git add farewell.txt
git commit -m "Add farewell file"

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

[feature/add-farewell a1b2c3d] Add farewell file
 1 file changed, 1 insertion(+)
 create mode 100644 farewell.txt

Jetzt wechseln wir zurück zum master-Branch:

git checkout master

Sie sollten eine Ausgabe sehen, die anzeigt, dass Sie den Branch gewechselt haben:

Switched to branch 'master'

Wir befinden uns jetzt auf dem master-Branch, und der feature/add-farewell-Branch enthält einen Commit, der nicht im master-Branch vorhanden ist.

Lassen Sie uns erneut git branch --merged verwenden:

git branch --merged

Sie sollten eine Ausgabe ähnlich dieser sehen:

* master
  feature/add-greeting

Beachten Sie, dass feature/add-farewell nicht in der Ausgabe aufgeführt ist. Dies liegt daran, dass der Commit, den wir auf feature/add-farewell gemacht haben, nicht in den master-Branch gemerged wurde.

Jetzt verwenden wir den Befehl git branch --no-merged. Dieser Befehl zeigt Branches an, die nicht in den aktuellen Branch gemerged wurden.

git branch --no-merged

Sie sollten eine Ausgabe ähnlich dieser sehen:

  feature/add-farewell

Diese Ausgabe zeigt korrekt feature/add-farewell an, da es Commits enthält, die nicht im master-Branch sind.

Die Befehle git branch --merged und git branch --no-merged sind leistungsstarke Werkzeuge zum Verwalten Ihrer Branches. Sie helfen Ihnen, zu verfolgen, welche Branches fertig sind und gelöscht werden können, und welche Branches noch in Entwicklung sind und gemerged werden müssen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein Git-Branch in den aktuellen Branch gemerged wurde. Wir haben begonnen, indem wir den Befehl git branch --merged verwendet haben, der alle Branches auflistet, deren Spitzen vom aktuellen Branch aus erreichbar sind und somit effektiv zeigt, welche Branches vollständig integriert wurden. Wir haben dies demonstriert, indem wir einen neuen Branch erstellt, einen Commit gemacht, ihn in den master-Branch gemerged und dann git branch --merged verwendet haben, um den Merge zu bestätigen.

Wir haben auch untersucht, wie man den Merge mit git log überprüft, indem man nach dem Merge-Commit sucht, und den Befehl mit nicht gemergten Branches getestet, um den Unterschied in der Ausgabe zu verstehen. Diese praktische Erfahrung hat uns ein praktisches Verständnis davon vermittelt, wie man Git-Befehle verwendet, um die Zustände von Branches in einem Repository zu verwalten und zu verstehen.