QuickTipp: Löschen lokaler Git Branches ohne Remote Branch

18. April 2017 Web-Entwicklung von Eric Kubenka

In meinem täglichen Umfeld arbeite ich viel mit /feature-Branches in Git und bin dabei für das Review von Pull-Requests verantwortlich. Die neuen, lokal verifizierten Features, lassen nach der anschließenden Genehmigung des Rull-Requests meist einen lokalen und nicht weiter genutzten Branch zurück, da das Feature bereits nach development oder master gemerged wurde.

Nach 10-20 Features hat man dann eine ganze Menge ungenutzter lokaler Branches, welche keinen zugehörigen Remote-Branch mehr besitzen. Um diese Branches zu entfernen gibt es eine kurze Kommando-Kette.

In diesem Zuge möchte ich kurz auf die Möglichkeiten des Löschen von Remote/Local Branches in Git eingehen.

Lokalen Branch löschen

Lokale Branches lasses sich leicht mittels folgendem Befhel entfernen.

git branch -d feature/xyz

Remote Branch löschen

Remote-Branches lassen sich durch das hinzufügen von -rentfernen.

git branch -dr origin/feature/xyz

Lokale Branches ohne Remote Branch löschen

Um lokale Branches ohne zugehörigen Remote-branch zu entfernen, benötigt man eine kleine Kommandokette. git branch -vv liefert eine detaillierte Liste aller Branches mit ihren Remote-Beziehungen. Mittels grep wird die Liste auf gone(entfernt)-e Branches gefiltert und anschließend werden diese Branches gelöscht.

git fetch -p
git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d

Zurück