Zusätzlich zu Schleis Antwort (die perfekt funktioniert), kann dies in Visual Studio integriert werden, so dass das Beschneiden lokaler Branches, wenn ein Git-Repo in VS geöffnet ist, wirklich einfach ist.
Sie können die Externen Tools-Funktionalität verwenden, um sh.exe (git bash) mit einem bestimmten Verzeichnis und Befehl aufzurufen. Dies befindet sich im Menü Tools > Externe Tools (in VS 2022 17.1.0). Die von mir verwendeten Parameter lauten wie folgt:
Befehl: {Pfad-zum-Git-Installationsort}\bin\sh.exe
Argumente: --cd=$(SolutionDir) -c "git fetch -p ; git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d"
Ausgangsverzeichnis: $(SolutionDir)
Screenshot von Git Prune Local Branches
Es ist erwähnenswert, dass dies nur funktioniert, wenn die Lösung, die Sie in VS geöffnet haben, sich in einem Git-Repo-Verzeichnis befindet.
Abschließende Anmerkung - dies kann über die Keybinding-Benutzeroberfläche von Visual Studio in Einstellungen > Allgemein > Tastatur gebunden werden und suchen nach Tools.ExternalCommand[n], wobei n die Position in der Tabelle für externe Befehle ist, an der Sie dieses externe Tool platziert haben (sie können im Dialogfeld Tools > Externe Tools neu angeordnet werden). Siehe Screenshot unten.
Keybinding eines externen Tools-Befehls
12 Stimmen
Möglicher Duplikat von Lokale Branches entfernen, die nicht mehr auf Remote vorhanden sind
8 Stimmen
Einzeiler, plattformübergreifend, sieht nicht aus, als hätte die Katze auf Ihrer 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 Details.0 Stimmen
Ich denke normalerweise, dass diese Dinge absichtlich und nicht automatisch gemacht werden sollten, da Sie sich ansonsten selbst dem Risiko aussetzen, etwas zu löschen, das Sie nicht löschen wollten. 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