Entfernen tracking branches nicht mehr auf Fernbedienung
Gibt es einen einfachen Weg, um löschen Sie alle tracking-Zweige, deren remote-äquivalent nicht mehr existiert?
Beispiel:
Zweigen (lokal und remote)
- master
- origin/master
- Herkunft/bug-fix-ein
- Herkunft/bug-fix-b
- Herkunft/bug-fix-c
Lokal, ich habe nur ein master-Zweig. Jetzt brauche ich für die Arbeit auf bug-fix-ein, also ich check it out, es auf Arbeit zu schieben, und änderungen an der Fernbedienung. Weiter habe ich auch das gleiche tun mit bug-fix-b.
Zweigen (lokal und remote)
- master
- bug-fix-ein
- bug-fix-b
- origin/master
- Herkunft/bug-fix-ein
- Herkunft/bug-fix-b
- Herkunft/bug-fix-c
Nun habe ich die lokalen Niederlassungen master, bug-fix-ein, bug-fix-b. Der Master-branch Betreuer merge meine änderungen in master und löschen Sie alle Zweige, die er hat bereits zusammengeführt.
Also der aktuelle Stand ist jetzt:
Zweigen (lokal und remote)
- master
- bug-fix-ein
- bug-fix-b
- origin/master
- Herkunft/bug-fix-c
Nun möchte ich Sie einmal nennen Befehl zum löschen von Zweigen (in diesem Fall bug-fix-ein, bug-fix-b), die sind nicht mehr vertreten im remote-repository.
Es wäre so etwas wie die vorhandenen Befehl git remote prune origin
, aber mehr wie git local prune origin
.
- Ich bin mir nicht ganz sicher, warum Sie würde nicht nur löschen Sie Ihren lokalen Niederlassungen mit
git branch -d branchname
... - Dies kann ein bisschen helfen: git branch -D $(git branch --merged)
- Martin Svalin: Denn am Ende der Woche habe ich etwa 15 dieser mindestens. DOT
- Angesichts des Fehlens einer einfachen und zuverlässigen "git branch -d-alles-gelöscht-aus-remote" - Befehl, warum nicht einfach wegblasen Ihre lokale repo, und Klonen Sie die Fernbedienung wieder? Sicherlich vorzuziehen, um all die komplexen Skripten, die Leute schlagen, die nicht auf verschiedene Grenzfälle?
- Andrew Spencer ' s Antwort ist die einzige Antwort, greift die Absicht der Frage (Müll-Sammlung von tracking-branches, die sich nicht mehr auf Fernbedienung--andere Antworten konnte, löschen lokale non-tracking-branches, die haben nicht geschoben!) und die "einfachen" Aspekt von ihm: Nein, gibt es nicht eine einfache Möglichkeit.
- Weil ich möglicherweise lokale änderungen haben sich auf jene Zweige, die will ich nicht auf nuke. Ich regelmäßig am Ende mit 5-10 "extra" - Filialen verschmolzen und gelöscht, während Sie noch arbeiten auf einem anderen Zweig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
git remote prune origin
Pflaumen-tracking branches nicht auf die Fernbedienung.git branch --merged
Listen Zweige zusammengeführt wurden, in den aktuellen Zweig.xargs git branch -d
löscht Zweige aufgelistet, die auf standard-Eingabe.Vorsichtig sein, löschen von Verzweigungen aufgeführt
git branch --merged
. Die Liste könnte umfassenmaster
oder anderen Zweigen, die Sie lieber nicht löschen.Geben Sie sich die Gelegenheit, Bearbeiten Sie die Liste vor dem löschen von Zweigen, können Sie das folgende tun in einer Zeile:
git branch --merged >/tmp/merged-branches && vi /tmp/merged-branches && xargs git branch -d </tmp/merged-branches
* master
auf meinem system. Der folgende Befehl funktionierte für mich:git branch -d $(git branch --merged |tail -n +2)
develop
danngit branch --merged
umfasstmaster
! Sie wahrscheinlich (definitiv!) nicht wollen, um Sie zu löschen. Ich denke auch, es solltegit branch -d
wo Kleinschreibung-d
bedeutet "Sicheres löschen" z.B. nur löschen, wenn zusammengeführt.git checkout master; git branch...
?git branch --merged | grep -v "master" >/tmp/merged-branches && vi /tmp/merged-branches && xargs git branch -d </tmp/merged-branches
git branch --merged | sed '/^\** *develop$/d' | sed '/^\** *master$/d' | xargs git branch -d
Nachdem der Befehl
entfernt die remote-Referenzen, wenn Sie Sie ausführen
wird es zeigen 'Weg' als den remote-status an. Zum Beispiel,
Schreiben Sie ein einfaches Skript zum entfernen von lokalen Niederlassungen, die gegangen Fernbedienungen:
git branch -vv | gawk '{print $1,$4}' | grep 'gone]' | gawk '{print $1}'
awk '/: gone]/{if ($1!="*") print $1}'
. Dieser funktioniert nun wie erwartet.git branch -d
löschen vollständig zusammengeführten Zweiggit fetch -p &&git branch -vv|grep ': gone]'|awk '{print $1}'|xargs git branch -D
fatal: Invalid refspec ': disparue]'
test = 'git fetch -p && for branch in `git branch -vv | grep ': gone]' | awk '{print $1}'`; do git branch -D $branch; done'
dann bekam ich diese Fehlermeldung, wenn ich versuche, führengit test
fatal: Invalid refspec ': gone]'
test = "!git fetch -p && for branch in `git branch -vv | grep ': gone]' | awk '{print $1}'`; do git branch -D $branch; done"
!
dem bash-Befehl, jede online-Referenz, die erklären, die trick plzgit branch -vv | grep ': gone]' | awk '{print $1}' | xargs -n1 echo git branch -d
-d
als-D
, um zu halten die noch nicht zusammengeführten Zweige, die vielleicht noch etwas wertvolles, wenn auch eventuell experimentellen code. Ich werde hinzufügen, um die bikeshedding hier mit meinen eigenen spin auf Sie:git branch -v|grep gone|awk '{print $1}'| xargs git branch -d
git branch -vv | cut -c 3- | gawk '{print $1,$4}' | grep 'gone]' | gawk '{print $1}'
?Meisten dieser Antworten nicht die Antwort auf die ursprüngliche Frage. Ich habe einen Haufen zu Graben und zu diese war die sauberste Lösung, die ich gefunden. Hier ist eine etwas genauere version der Antwort:
git checkout master
git fetch -p && git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -d
Erklärung:
Arbeiten durch beschneiden Ihre tracking-Zweige löschen Sie den einheimischen zeigen, dass Sie "gegangen" in
git branch -vv
.Hinweise:
Wenn Ihr die Sprache auf etwas anderes als Englisch, müssen Sie die änderungen
gone
auf das entsprechende Wort. Zweige, die nur lokal nicht berührt werden. Zweige, die gelöscht wurden, auf der Fernbedienung, aber wurden nicht zusammengeführt werden, wird eine Benachrichtigung anzeigen, aber nicht gelöscht werden, auf der lokalen. Wenn Sie wollen, löschen Sie diese ebenfalls ändern-d
zu-D
.git checkout master && ...
am Anfang des Befehls.master
so dass der genaue Vorschlag ist nicht sicher, aber ja, ich vergaß zu erwähnen, es sollte ausgeführt werden, die von Ihrem default-Zweig, so werde ich das tun. Danke!git checkout
Weg alsrm -rf
ing ein system-Verzeichnis. 🙂LC_ALL=C
besser funktioniert, dankeLANG=en_US
.git remote show origin | grep "HEAD branch" | cut -d ":" -f 2 | xargs git checkout
git branch -vv
beginnt mit einem Sternchen, die in das Endergebnis in der Ausführunggit branch -d *
. Hier ist eine gepatchte version, die ignoriert Zeilen mit Sternchen:git branch -vv | grep ': gone]'| grep -v "\*" | awk '{ print $1; }' | xargs -r git branch -d
Ich würde nicht normalerweise die Antwort auf eine Frage, die bereits 16 Antworten, aber alle anderen Antworten sind falsch, und die richtige Antwort ist so einfach. Die Frage sagt, "gibt es einen einfachen Weg, um löschen Sie alle tracking-Zweige, deren remote-äquivalent nicht mehr existiert?"
Wenn "einfach" bedeutet nicht zerbrechlich, nicht gefährlich, und ohne Vertrauen auf tools, die nicht alle Leser haben, dann lautet die Antwort: Nein.
Einige Antworten sind einfach, aber Sie tun nicht, was gefragt wurde. Andere tun, was gefragt wurde, aber sind nicht einfach: alle verlassen sich auf das Parsen Git-Ausgabe über text-Manipulations-Befehle oder scripting-Sprachen, die möglicherweise nicht auf jedem system vorhanden. Auf top von, dass, meisten Vorschläge verwenden Porzellan-Befehle, deren Ausgang nicht konzipiert ist, um analysiert zu werden, indem Sie ein Skript ("Porzellan" bezieht sich auf die Befehle für den menschlichen Betrieb; Scripte sollten die lower-level - "plumbing" - Befehle).
Weiter Lesen:
git remote prune
,git prune
,git fetch --prune
git branch
- Ausgabe in einem Skript.Wenn Sie möchten, dies sicher zu machen, für den Anwendungsfall in Frage (Müll-Sammel-tracking-branches, die wurden auf dem server gelöscht, aber immer noch existieren, die als lokale Niederlassungen) und mit high-level-Git-Befehle nur, Sie müssen
git fetch --prune
(odergit fetch -p
, das ist ein alias, odergit prune remote origin
die nicht die gleiche Sache, ohne Holen, und ist wahrscheinlich nicht das, was Sie wollen die meisten der Zeit).git branch -v
(verwaiste tracking-Zweig wird markiert "[Weg]").git branch -d [branch_name]
auf jedes verwaiste tracking-branchWenn Sie möchten Skript eine Lösung, dann
for-each-ref
ist Ihr Ausgangspunkt, wie in Daneben Longair Antwort hier und diese Antwort auf eine andere Frage, aber ich kann nicht einen Weg finden, es zu nutzen, ohne das schreiben eines shell-Skript-Schleife, oder mit xargs oder so etwas.Hintergrund Erklärung
Zu verstehen, was vorgeht, müssen Sie es zu schätzen wissen, in der situation der Verfolgung der Zweige, Sie haben nicht ein Zweig, sondern drei. (Und erinnere daran, dass "Zweig" bedeutet einfach ein Zeiger auf einen commit.)
Erhält eine tracking-branch
feature/X
, das remote-repository (server) dieser Zweig, und Sie rufenfeature/X
. Ihre lokale repository ein branchremotes/origin/feature/X
was bedeutet, "Dies ist, was die Fernbedienung sagte mir, seine Funktion/X-Zweig wurde das Letzte mal Sprachen wir," und schließlich das lokale repository ein branchfeature/X
Punkte, die zu Ihrer neuesten verpflichten, und konfiguriert ist, um "track"remotes/origin/feature/X
, was bedeutet, dass Sie ziehen Sie und schieben Sie, Sie zu halten ausgerichtet.Irgendwann jemand gelöscht hat, der
feature/X
auf der Fernbedienung. Von diesem moment, Sie sind mit Ihrem lokalenfeature/X
(die Sie wahrscheinlich nicht wollen, dass jeder mehr, da die Arbeit auf die Funktion X ist vermutlich fertig), und Ihreremotes/origin/feature/X
das ist sicherlich sinnlos, weil sein einziger Zweck war, zu erinnern, den Zustand der server-Niederlassung.Und Git wird Sie automatisch bereinigen, die redundante
remotes/origin/feature/X
- das ist, wasgit fetch --prune
tut -- aber für einige Grund, es nicht lassen, Sie automatisch löschen Sie Ihre eigenenfeature/X
... auch wenn Ihrfeature/X
enthält noch die verwaiste tracking-Informationen, so hat es die Informationen, die zur Identifizierung ehemaligen tracking-branches, die vollständig zusammengeführt. (Schließlich kann es geben Sie die Informationen, die Sie können, machen die Bedienung von hand selbst machen.)for-each-ref
, konnte aber nicht herausfinden, einen Weg zu passieren, die Ausgabe auf einen branch-Befehl löschen, ohne OS-spezifische tools wie einem looping-Skript oder xargs. In der Tat bin ich davon überzeugt, der Sinn der Frage war, "Tut Git selbst bieten eine [Porzellan] - Befehl, um diese in 1 Zeile?" und es nicht (obwohl es IMO sollte).xargs
). Es ist auchgit alias
zu vereinfachen, eine Reihe von Fällen.xargs
oder bash, und Sie sind wahrscheinlich nicht hier auf der Suche nach einem micro-Codierung Herausforderung, so viel wie eine schnelle Antwort, die Sie anwenden können, sicher und ohne störende, sich weiter von seinem eigentlichen Ziel.Scheint die Lösung ist hier – https://stackoverflow.com/a/1072178/133986
Kurz
git remote prune
ist die MagieFand ich die Antwort hier:
Wie lösche ich alle git-Zweige, die zusammengeführt wurden?
Stellen Sie sicher, dass wir immer Meister
Können Sie sicherstellen, dass
master
oder irgendein anderer Zweig für diese Angelegenheit, nicht entfernt durch das hinzufügen eines weiterengrep
nach der ersten. In diesem Fall würden Sie gehen:Also, wenn wir wollten, zu halten
master
,develop
undstaging
zum Beispiel, wir würden gehen:Machen diese einen alias
Da es ein bisschen zu lang, möchten Sie vielleicht, um einen alias hinzuzufügen, um Ihre
.zshrc
oder.bashrc
. Meine heißtgbpurge
(fürgit branches purge
):Dann laden Sie Ihre
.bashrc
oder.zshrc
:oder
Entfernen Sie alle Zweige, die zusammengefasst in master, aber nicht versuchen, zu entfernen master selbst:
git checkout master && git pull origin master && git fetch -p && git branch -d $(git branch --merged | grep master -v)
oder einen alias hinzufügen:
alias gitcleanlocal="git checkout master && git pull origin master && git fetch -p && git branch -d $(git branch --merged | grep master -v)"
Erklärung:
git checkout master
checkout master branchgit pull origin master
sicherzustellen, dass die lokalen branch bietet alle remote-änderungen zusammengeführtgit fetch -p
entfernen Sie Verweise auf remote-Niederlassungen, die gelöscht wurdengit branch -d $(git branch master --merged | grep master -v)
löschen Sie alle Zweige zusammengeführt wurden in den master, aber nicht versuchen, zu entfernen master selbstgit branch -D
Befehlgit branch -d
die Frage sollte eine Warnung über nicht geschoben Zweige.Windows-Lösung
Für Microsoft Windows Powershell:
git checkout master; git remote update origin --prune; git branch -vv | Select-String -Pattern ": gone]" | % { $_.toString().Trim().Split(" ")[0]} | % {git branch -d $_}
Erklaerung
git checkout master
Schalter, um die master-Zweiggit remote update origin --prune
Pflaumen, Außenstellengit branch -vv
erhält eine ausführliche Ausgabe aller Branchen (git-Referenz)Select-String -Pattern ": gone]"
bekommt nur die Datensätze, in denen Sie entfernt wurden-Fernbedienung.% { $_.toString().Trim().Split(" ")[0]}
Holen Sie sich die Zweig-name% {git branch -d $_}
löscht den Zweig.Trim()
nach.toString()
um entfernen Sie die beiden Leerzeichen vor den branch-Namen.git branch -d
zugit branch -D
sonst bekomme ich die Fehlermeldung, der Zweig ist nicht vollständig zusammengeführt.Den pattern-matching für "gone" in den meisten anderen Lösungen war ein wenig beängstigend für mich. Um sicherer zu sein, nutzt dieser die
--format
Flagge zu ziehen aus jeder Filiale upstream-tracking-status.Brauchte ich eine Windows-freundliche version, so ist dies löscht alle Branchen, die aufgelistet werden, wie "gone" mit Powershell:
Die erste Zeile enthält die Namen der lokalen Zweige, deren upstream-branch ist "verschwunden". Die nächste Zeile entfernt leere Linien (die Ausgabe für Zweige, die nicht "gegangen"), dann die branch-name übergeben wird, wird der Befehl zum löschen der Filiale.
--format
option zu sein scheint ziemlich neu; ich brauchte, um zu aktualisieren git von 2.10.etwas zu 2.16.3 bei der, um es zu bekommen. Dies ist meine Modifikation für Linux-ish-Systeme:git branch --list --format "%(if:equals=[gone])%(upstream:track)%(then)%(refname)%(end)" | sed 's,^refs/heads/,,' | grep . | xargs git branch -D
refname:short
. Dann können Sie die Zeile löschen% { $_ -replace '^refs/heads/', '' }
Dieser löscht alle Branchen, die nicht verfolgt aus der Ferne.
X
; Siegit checkout X
; jetzt ist das repository hat eine (lokale) tracking-branchX
und einem remote-branchorigin/X
; remote-repository löschtX
; Siegit fetch-p
; in Ihrem lokalen repository, nicht nurorigin/X
aber auchX
gelöscht wurden. Ist es das, was du sagst?Dieser löscht alle zusammengeführt lokalen verzweigt, mit Ausnahme der lokalen master-Referenz-und die derzeit verwendet werden:
Und das löscht alle äste bereits entfernt, aus das remote-repository verwiesen wird, die von "Herkunft", aber sind immer noch lokal verfügbar "remotes/origin".
git branch -vv | grep 'gone]' | grep -v "\*" | awk '{print $1}' | xargs -r git branch -d
Erklärung: ich bevorzuge austauschen dergit branch --merged
durchgit branch -vv
zeigen den status (Weg), weil die Vorherigegit branch --merged
zeigen können, auch der MeisterIch glaube nicht, dass es einen eingebauten Befehl, um dies zu tun, aber es ist sicher, um Folgendes zu tun:
Wenn Sie
-d
, git ablehnen, löschen Sie den Zweig, es sei denn er ist völlig verschmolzenHEAD
oder upstream-remote-tracking-branch. So konnten Sie immer Schleife über die Ausgabe vongit for-each-ref
und versuchen Sie zu löschen, jeden Zweig. Das problem bei diesem Ansatz ist, dass ich vermute, dass Sie wahrscheinlich nicht wollenbug-fix-d
gelöscht werden, nur weilorigin/bug-fix-d
enthält seine Geschichte. Stattdessen könnte man ein script erstellen, so etwas wie die folgenden:Warnung: ich habe nicht getestet, Skript - verwenden Sie nur mit Vorsicht...
Könnte nützlich sein, einige, einfach eine Zeile zum löschen aller lokalen Zweige außer master und entwickeln
'git branch | grep -v "master" | grep -v "develop"
Art von Zeug, bevor Sie hinzufügen auf die Löschung Teil des Befehls. ??Doch-noch-Antwort für den Haufen, Zeichnung stark von https://stackoverflow.com/a/48411554/2858703 (die ich mag, weil es scheint, zu tun, Weg mit jeder Unklarheit darüber, wo
gone]
passen in diegit branch
Ausgabe), aber das hinzufügen einer *nix verbogen:Habe ich das verpackt in einen
git-gone
Skript auf meinem Weg:NB - Die --format-option zu sein scheint ziemlich neu; ich brauchte, um zu aktualisieren git von 2.10.etwas zu 2.16.3 bei der, um es zu bekommen.
sed
Teil über%(refname:short)
in der ersten Zeile?--format
. Ein weiterer Weg, um ein überspringen dersed
Teil ist die Verwendunggit update-ref -d
. Beachten Sie, dass dies wahrscheinlich etwas unsicher, mitgit for-each-ref
sicherer ist hier (in Anbetracht--shell
).Basierend auf info oben, dieser arbeitete für mich:
Es entfernt alle lokalen Zweige, sind mit
': gone] '
auf der Fernbedienung.gone
irgendwo in seinem Namen.Den oben genannten Befehl kann verwendet werden, zum abrufen von Filialen vorhanden sind, die zusammengeführt und gelöscht remote und es löscht die lokale Filiale, die nicht mehr im remote -
grep gone <(git branch -v) | cut -d ' ' -f 3 | xargs git branch -D
zu erzwingen, löschen Sie alleAll dies war nicht wirklich das richtige für mich. Ich wollte etwas, das würde purge alle lokalen Zweige, die waren einen remote-tracking-branch, auf
origin
, wo der remote Zweig wurde gelöscht (gone
). Ich wollte nicht löschen, lokalen Zweige, die wurden nie eingerichtet, um track remote branch (d.h.: meiner lokalen dev-Filialen). Auch ich wollte ein einfaches one-liner, die nur verwendetgit
oder andere einfache CLI-tools, sondern schreiben Sie benutzerdefinierte Skripts. Ich landete mit ein bisschengrep
undawk
zu machen mit diesem einfachen Befehl.Dies ist letztlich, was landete in meinem
~/.gitconfig
:Hier ist ein
git config --global ...
Befehl zum einfachen hinzufügen von diesen alsgit prune-branches
:HINWEIS: In der config, ich benutze die
-d
optiongit branch
eher als-D
, als ich in meine aktuelle config. Ich benutze-D
weil ich nicht wollen, zu hören Git beschweren sich über nicht zusammengeführte Zweige. Möglicherweise möchten Sie diese Funktionalität als gut. Wenn dem so ist, verwenden Sie einfach-D
statt-d
am Ende des config-Befehls.git branch -vv
und greping für: gone]
und nichtgit branch -v
und grep für[gone]
?Basierend auf Git-Tipp: Das Löschen Von Alten Lokalen Niederlassungen, die sieht ähnlich aus wie jason.rickman ' s Lösung ich implementiert einen benutzerdefinierten Befehl für diesen Zweck genannt git gegangen mit Bash:
git gone -pn
verbindet die Beschneidung und die Auflistung der "gone" - Filialen:Dann Sie können ziehen Sie den Auslöser mit
git gone -d
odergit gone -D
.Notes
"$BRANCH/.*: gone]"
wo$BRANCH
normal wäreorigin
. Dies wird wahrscheinlich nicht funktionieren, wenn Ihr Git-Ausgang lokalisiert ist Französisch etc.Zeichnung stark von einem Anzahl der andere Antworten hier, ich habe endete mit der folgenden (git 2.13 und nur oben, glaube ich), der sollte auf jedem UNIX-shell:
Diese vor allem verwendet
for-each-ref
stattbranch
(wiebranch
ist "Porzellan" - Befehl wurde für von Menschen lesbare Ausgabe, nicht in der Maschine-Verarbeitung) und nutzt seine--shell
argument, um richtig escaped-Ausgang (dies erlaubt uns keine sorgen mehr zu machen über irgendwelche Zeichen in der ref-name).Kam ich mit diesem bash-Skript. Ist es immer die äste
develop
,qa
,master
.Dieser arbeitete für mich:
Ich bin nicht sicher, für wie lange, aber ich benutze git-bis jetzt, die das übernimmt.
Ich tun
git up
und es beginnt zu verfolgen, neue Filialen und löscht die alten.Nur um es klar, ist es nicht out-of-box git-Befehl — https://github.com/aanand/git-up
BTW auch Verstecke schmutzige Baum und macht rebases noch mit nur
git up
.Hoffe, es wird nützlich sein für jemanden, der
Hier ist eine Lösung, die ich für die fish shell. Getestet auf
Mac OS X 10.11.5
,fish 2.3.0
undgit 2.8.3
.Ein paar Hinweise:
Stellen Sie sicher, dass die richtige
base_branch
. In diesem Fall nutze ichdevelop
als base-branch, aber es könnte alles sein.Dieser Teil ist sehr wichtig:
grep -v "\(master\|$base_branch\|\*\)"
. Es sorgt dafür, dass Sie nicht löschen Sie master oder Ihrer base-branch.Benutze ich
git branch -d <branch>
als eine zusätzliche Vorsichtsmaßnahme, um so nicht löschen, jeder Zweig, der nicht vollständig zusammengeführt mit vor-oder aktuelle KOPF.Einen einfachen Weg, um zu testen, ist zu ersetzen
git branch -d $f
mitecho "will delete $f"
.Ich glaube, ich sollte auch hinzufügen: VERWENDUNG AUF EIGENE GEFAHR!
Ich eine kurze Methode, um den trick zu tun, empfehle ich Ihnen, das gleiche zu tun, wie Sie sparen könnten einige Stunden & geben Sie mehr Sichtbarkeit
Fügen Sie einfach den folgenden Code in Ihre .bashrc (.bashprofile auf macos).
Müssen Sie Bearbeiten Sie die grep regex, um das zu Ihren Bedürfnissen passt (hier ist es zu verhindern, master -, preprod-und dmz-aus-Löschung)
Dies ist gonna löschen Sie alle remote-branches, die nicht lokal vorhanden sind (in ruby):
Erklärt:
Ich benutze diese Methode, so kann ich mehr Kontrolle haben.
git branch -D $(git branch | grep -v "master" | grep -v "develop")
Dies ist, entfernen Sie alle Zweige, die nicht benannt:
master
oderdevelop
.