Neben Schleis Antwort (die perfekt funktioniert), kann dies auch in Visual Studio integriert werden, sodass das Beschneiden lokaler Branches, wenn ein Git-Repository in VS geöffnet ist, wirklich einfach ist.
Sie können die External Tools-Funktionalität verwenden, um sh.exe (Git Bash) mit einem bestimmten Verzeichnis und Befehl aufzurufen. Dies befindet sich im Menüpunkt Tools > External 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, innerhalb eines Git-Repo-Verzeichnisses liegt.
Abschließende Anmerkung - dies kann über die Benutzeroberfläche zur Tastenzuordnung von Visual Studio in Einstellungen > Allgemein > Tastatur und der Suche nach Tools.ExternalCommand[n] gebunden werden, wobei n die Position in der Liste der externen Befehle ist, an der dieses externe Tool positioniert ist (sie können in dem Dialogfeld Tools > External Tools neu angeordnet werden). Siehe untenstehenden Screenshot.
Keybinding eines External Tools Befehls
12 Stimmen
Möglicher Duplikat von Lokale Branches entfernen, die nicht mehr auf dem Remote-Server vorhanden sind
8 Stimmen
Einzeiler, 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 Details.0 Stimmen
Ich denke in der Regel, dass diese Dinge absichtlich und nicht automatisch erledigt werden sollten, da Sie sich sonst dem Risiko aussetzen, etwas zu löschen, das Sie nicht löschen wollten. Deshalb 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 benötigen: plugins.jetbrains.com/plugin/10059-git-branch-cleaner