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 $_}
Erklärung
git checkout master
wechselt zum Master-Zweig
git remote update origin --prune
bereinigt entfernte Zweige
git branch -vv
gibt eine ausführliche Ausgabe aller Zweige aus (git Referenz)
Select-String -Pattern ": gone]"
gibt nur die Datensätze zurück, bei denen sie von entfernt wurden.
% { $_.toString().Split(" ")[0]}
gibt den Zweig-Namen zurück
% {git branch -d $_}
löscht den Zweig
12 Stimmen
Möglicher Duplikat von Lokale Branches entfernen, die nicht mehr auf dem Server vorhanden sind
8 Stimmen
One-Liner, plattformübergreifend, sieht nicht so aus, als hätte die Katze auf deiner Tastatur geschlafen:
npx git-removed-branches
(Trockenlauf) odernpx git-removed-branches --prune
(für echt). Du musst bereits node.js installiert haben. Siehe Antworten unten für weitere Details.0 Stimmen
Ich denke normalerweise, dass diese Dinge absichtlich und nicht automatisch erledigt werden sollten, da Sie sich sonst offenlegen, etwas zu löschen, das Sie nicht löschen wollten. Daher würde ich bei git branch -d localBranchName und git push origin --delete remoteBranchName bleiben.
3 Stimmen
Für IntelliJ-Benutzer tut das folgende Plugin genau das, was Sie brauchen: plugins.jetbrains.com/plugin/10059-git-branch-cleaner