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
erhält eine ausführliche Ausgabe aller Zweige (git Referenz)
Select-String -Pattern ": gone]"
erhält nur die Einträge, bei denen sie aus dem Remote entfernt wurden.
% { $_.toString().Split(" ")[0]}
erhält den Zweig-Namen
% {git branch -d $_}
löscht den Zweig
12 Stimmen
Möglicher Duplikat von Entfernen Sie lokale Branches, die nicht mehr auf Remote vorhanden sind
8 Stimmen
Eine Zeile, plattformübergreifend, sieht nicht aus, als ob die Katze auf deiner Tastatur geschlafen hätte:
npx git-removed-branches
(trocken laufen) odernpx git-removed-branches --prune
(für echt). Du musst bereits node.js installiert haben. Siehe Antworten unten für Details.0 Stimmen
Ich denke normalerweise, dass solche Dinge bewusst und nicht automatisch gemacht werden sollten, da man sich sonst versehentlich etwas löschen könnte, das man nicht löschen wollte. Also 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