Löschen Sie zusammengeführte Branches in Git
- Anzeigen der bestehenden Zweige in Git
- Löschen Sie mehrere lokale zusammengeführte Branches auf einmal in Git
- Löschen Sie lokale und entfernte zusammengeführte Branches in Git
In Git ist Verzweigung notwendig, um mit vielen Teammitgliedern zu arbeiten. Branches stellen Momentaufnahmen der Änderungen dar, die in der Vergangenheit in Git vorgenommen wurden.
Wenn wir einen neuen Zweig in Git erstellen, soll er die Änderungen enthalten, die wir vorgenommen haben, um die Fehler zu beheben oder neue Funktionen hinzuzufügen.
Über Git können wir Branches einfach verwalten, ob wir sie erstellen oder mithilfe von Befehlen löschen. Das Löschen von Branches ist in Git keine Ausnahme.
Viele Entwickler fühlen sich zufrieden, wenn ihr Git-Repository sauber ist, indem sie die zusammengeführten Zweige löschen, und sie können leicht für die neue Entwicklung zu den vorhandenen Zweigen übergehen.
Sehen wir uns an, wie bereits zusammengeführte Branches mit den folgenden Befehlen in Git entfernt werden.
Anzeigen der bestehenden Zweige in Git
Bevor wir mit dem Löschen der vorhandenen Branches in einem Repository beginnen, werfen wir einen Blick auf die gesamte Liste der Branches, indem wir den folgenden Befehl ausführen:
git branch
Um die Liste aller Remote-Branches anzuzeigen, führen wir den folgenden Befehl aus:
git branch -r
Um die Liste aller Branches (lokal und remote) anzuzeigen, führen wir den folgenden Befehl aus:
git branch -a
Als Ergebnis dieser Befehle sehen wir eine Liste von Zweigen. Nicht alle Zweige, die wir sehen können, sollten gelöscht werden. Unser Ziel ist es, die bereits zusammengeführten Zweige zu bereinigen.
Um die Liste aller lokalen zusammengeführten Branches anzuzeigen, führen wir den folgenden Befehl aus:
git branch --merged
Um die Liste aller lokalen, nicht zusammengeführten Branches anzuzeigen, führen wir den folgenden Befehl aus:
git branch --no-merged
Löschen Sie mehrere lokale zusammengeführte Branches auf einmal in Git
Zweige einzeln zu löschen ist viel zeitaufwändiger und nicht der richtige Job. Natürlich sind wir Entwickler und ziehen es nicht vor, eine sich wiederholende Aufgabe zu erledigen, wenn wir sie mit einigen Befehlen robotisieren können.
Wie wir in der Liste der zusammengeführten Zweige gesehen haben, kann es einige Zweige geben, die wir in Zukunft nicht löschen möchten. Zu diesem Zweck fügen wir einige Argumente mit dem Befehl zum Löschen aller zusammengeführten Zweige hinzu, um die Zweige auszuschließen, die wir nicht löschen möchten.
Der folgende Befehl enthält nicht den Zweig master
und alles, was dev enthält:
git branch --merged| egrep -v "(^\*|master|main|dev)"
Wenn wir einen anderen Zweig überspringen möchten, fügen wir den Namen wie folgt hinzu:
git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"
Angenommen, wir möchten die vorhandenen lokalen Zweige des Repositorys löschen, die bereits in der Vergangenheit mit dem aktuell ausgecheckten Zweig des Repositorys zusammengeführt wurden. In diesem Fall führen wir den folgenden Befehl aus:
git branch --merged | grep -i -v -E "master|dev"| xargs git branch -d
Löschen Sie lokale und entfernte zusammengeführte Branches in Git
Um einen zusammengeführten lokalen Zweig zu löschen, führen wir den Befehl git branch
mit der Option -d
aus, wie unten erwähnt.
git branch -d <branch-name>
Wenn der lokale Zweig nicht zusammengeführt wird, führen wir den folgenden Befehl aus:
git branch -D <branch-name>
Wenn wir es von der Fernbedienung löschen möchten, führen wir den Befehl git push
mit der Option --delete
aus (hier ist der Name der Fernbedienung der Ursprung, was standardmäßig der Fall ist):
git push --delete origin <branch-name>
Alternativ können wir auch folgenden Befehl verwenden:
git push origin :<branch-name>
Nachdem wir den Branch von der Remote gelöscht haben, werden wir mit dem folgenden Befehl beschneiden, um Remote-Tracking-Branches zu eliminieren:
git remote prune origin
Einzeln können wir Remote-Tracking-Zweige auch mit dem folgenden Befehl beschneiden:
git branch -dr <branch-name>