Ich habe ein Git-Repository mit mehreren Zweigen.
Wie kann ich wissen, welche Zweige bereits in den Hauptzweig eingebunden sind?
Ich habe ein Git-Repository mit mehreren Zweigen.
Wie kann ich wissen, welche Zweige bereits in den Hauptzweig eingebunden sind?
git branch --merged master
listet Zweige auf, die in Meister
git branch --merged
listet Zweige auf, die in KOPF (d.h. die Spitze des aktuellen Zweigs)
git branch --no-merged
listet Zweige auf, die noch nicht zusammengeführt wurden
In der Standardeinstellung gilt dies nur für die lokalen Zweigstellen. Die Website -a
Flagge werden sowohl lokale als auch entfernte Zweige angezeigt, und die -r
zeigt nur die entfernten Zweige an.
Nur eine Randbemerkung: Als ich versucht habe, zu sehen, ob ein entfernter Zweig zusammengeführt wurde, habe ich zuerst einen lokalen Verfolgungszweig eingerichtet und den Status mit git branch --merged
und löschte dann den lokalen und den entfernten Zweig.
Offensichtlich, git branch -a --merged/no-merged
funktioniert auch, ohne dass dabei ein lokaler Tracking-Zweig entsteht.
Sie können die git merge-base
Befehl, um die letzte gemeinsame Übertragung zwischen den beiden Zweigen zu finden. Wenn dieser Commit mit dem Kopf Ihres Zweiges übereinstimmt, wurde der Zweig vollständig zusammengeführt.
Beachten Sie, dass git branch -d
macht so etwas bereits, weil es sich weigert, einen Zweig zu löschen, der hat nicht bereits vollständig zusammengeführt worden.
"wurde noch nicht vollständig zusammengeführt" ... vollständig zusammengeführt in welchen Zweig?
Um zu überprüfen, welche Zweige in Master zusammengeführt werden, sollten Sie diese Befehle verwenden:
git branch <flag[-r/-a/none]> --merged master
Liste aller Zweige, die in Master zusammengeführt wurden.git branch <flag[-r/-a/none]> --merged master | wc -l
Anzahl aller Zweige, die in Master zusammengeführt wurden.Flaggen sind:
-a
Flagge - (alle) Anzeige der entfernten und lokalen Zweigstellen-r
Flagge - (entfernt) nur entfernte Zweigstellen anzeigen<emptyFlag>
- zeigend . nur Zweigstellenzum Beispiel: git branch -r --merged master
zeigt Ihnen alle entfernten Repositories, die in Master zusammengeführt wurden.
Vielen Dank für diese tolle Antwort. Sehr hilfreich und einfach zu bedienen. Dies sollte auf die Antwort gesetzt werden, weil es Git (und nicht eine 3rd-Party-Element) verwendet.
git branch -r merged main
zeigt Ihnen Zweige an, die Sie auf GitHub "gelöscht" haben, weil GitHub führt Aufzeichnungen über kürzlich gelöschte PR-Zweige
Utilice git merge-base <commit> <commit>
.
Dieser Befehl findet den oder die besten gemeinsamen Vorfahren zwischen zwei Commits. Und wenn der gemeinsame Vorfahre mit dem letzten Commit eines "Zweiges" identisch ist, dann können wir sicher davon ausgehen, dass dieser "Zweig" bereits in den Master zusammengeführt wurde.
Hier sind die Schritte
git merge-base <commit-hash-step1> <commit-hash-step2>
.Weitere Informationen über git merge-base https://git-scm.com/docs/git-merge-base .
Ich denke, dass Sie damit nur feststellen können, ob die Tipps zusammengeführt werden. Zum Beispiel wird es Ihnen nicht sagen, ob master
wurde verschmolzen mit branch
und dann wurden 4 weitere Übertragungen in branch
.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.