En partant du principe que la branche principale du repository est la branche master, la commande suivante permet de retrouver toutes les branches locales qui ont déjà été mergées.
git branch --merged master
Comme le monde est bien fait, il est aussi possible d’obtenir l’information inverse, soit toutes les branches locales n’ayant jamais été mergées.
git branch --no-merged master
À priori, les branches ayant déjà été mergées peuvent être supprimées sereinement. Pour cela, il est possible de les supprimer une par une :
git branch -d old-useless-branch
git branch -d old-useless-branch2
git branch -d old-useless-branch3
Ce qui peut s’avérer fastidieux. Il est possible de toutes les supprimer d’un coup, tout en indiquant quelques exclusions si certaines branches mergées n’ont pas vocation à être supprimées :
git branch --merged master | egrep -v "(^\*|master|dev|brancheAGarder)" | xargs git branch --delete