26 Punkte von GN⁺ 2026-02-21 | Noch keine Kommentare. | Auf WhatsApp teilen
  • In internen CIA-Entwicklungsdokumenten wurde ein einfacher Befehl entdeckt, der das alte Problem des Aufräumens von Git-Branches löst
    git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d
  • Der Befehl löscht aus der Ausgabe von git branch --merged alle gemergten Branches gesammelt, außer dem aktuellen Branch und master
  • Es gibt auch eine für moderne Projekte angepasste Version, die main und develop ausnimmt
  • Der Befehl kann als Git-Alias registriert werden, um wiederkehrende Aufgaben zu automatisieren, und ist trotz seiner Einfachheit ein nützliches Werkzeug für dauerhafte Effizienzgewinne und ein aufgeräumtes Repository

Ein in Vault7 entdeckter Git-Tipp

  • Die 2017 von WikiLeaks veröffentlichten Vault7-Dokumente enthielten die Hacking-Tools der CIA und interne Entwicklungsdokumente
    • Auf einer dieser Seiten fand sich eine Sammlung von Git-Tipps und -Tricks, darunter meist übliche Hinweise zu Commit-Korrekturen, Stash und der Verwendung von bisect
  • Ein dort gefundener Einzeiler ist bis heute in meiner ~/.zshrc erhalten geblieben

Das Problem mit alten Branches

  • In lokalen Git-Repositories sammeln sich mit der Zeit gemergte Branches an, was das Aufräumen erschwert
    • Feature-Branches, Hotfixes und experimentelle Branches bleiben nach dem Merge bestehen, sodass die Ausgabe von git branch unübersichtlich wird
  • Mit git branch --merged lassen sich gemergte Branches anzeigen, aber das manuelle Löschen ist umständlich

Der ursprüngliche Befehl aus dem CIA-Dokument

  • Der ursprünglich vorgeschlagene Befehl lautet
    git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d  
    
  • Erläuterung der Bestandteile
    • git branch --merged: Gibt eine Liste aller lokalen Branches aus, die in den aktuellen Branch gemergt wurden
    • grep -v "\*\|master": Schließt den aktuellen Branch (*) und master aus
    • xargs -n 1 git branch -d: Löscht die übrigen Branches sicher einzeln (-d löscht keine nicht gemergten Branches)

Modernisierte Version des Befehls

  • Da die meisten Projekte den Branch main verwenden, kann der Befehl wie folgt angepasst werden
    git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d  
    
  • Wenn man ihn nach dem Deployment auf dem Branch main ausführt, reduziert sich eine lange Liste von Branches auf nur noch wenige
  • Der Befehl kann als Git-Alias registriert werden, um ihn bequem auszuführen
    alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'  
    
    • Danach genügt im Repository der Befehl ciaclean, um das Aufräumen automatisch auszuführen

Effizienz und Praxistauglichkeit

  • Dieser Befehl spart jede Woche ein paar Minuten und hilft dabei, die Branch-Liste sauber zu halten
  • Er gilt als einfaches, aber praktisches Werkzeug, das kontinuierliche Produktivitätsgewinne bringt

Noch keine Kommentare.

Noch keine Kommentare.