Zusätzlich zur Antwort von Schlei (die perfekt funktioniert), kann dies 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 nutzen, um sh.exe (git bash) mit einem bestimmten Verzeichnis und Befehl aufzurufen. Dies befindet sich im Menü Tools > External Tools (in VS 2022 17.1.0). Die von mir verwendeten Parameter lauten wie folgt:
Befehl: {Pfad-zum-Git-Installationsverzeichnis}\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-Repository-Verzeichnis befindet.
Abschließende Anmerkung - dies kann über die Benutzeroberfläche zum Festlegen von Tastenkombinationen in den Visual Studio-Einstellungen unter Allgemein > Tastatur durch Suchen nach Tools.ExternalCommand[n] gebunden werden, wobei n die Position in der Tabelle der externen Befehle ist, an der dieses externe Tool positioniert ist (sie können in der Tools > External Tools-Dialogfeld neu angeordnet werden). Siehe untenstehenden Screenshot.
Tastenkombination für ein externes Tool-Befehl
12 Stimmen
Möglicher Duplikat von Lokale Branches entfernen, die nicht mehr auf dem Remote-Server sind
8 Stimmen
Einzeiler, plattformübergreifend, sieht nicht aus, als hätte die Katze auf deiner Tastatur geschlafen:
npx git-removed-branches
(Trockenlauf) odernpx git-removed-branches --prune
(für echte Durchführung). Sie müssen bereits node.js installiert haben. Siehe Antworten unten für Details.0 Stimmen
Normalerweise denke ich, dass diese Dinge absichtlich und nicht automatisch erledigt werden sollten, da man sich sonst öffnet, etwas zu löschen, was man nicht löschen wollte. Also würde ich beim 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