Nettoyer vos branches Git locales

Git GitHub Shell

Nettoyer vos branches Git locales

Lorsqu’on collabore avec Git et des dépôts distants, on accumule souvent des branches locales qui deviennent obsolètes. Voici un workflow pour nettoyer efficacement.

Prérequis

Cet article suppose que vos dépôts GitHub sont configurés pour supprimer automatiquement les branches après la fusion des pull requests. Ce paramètre aide à identifier les branches obsolètes.

Processus étape par étape

1. Élaguer les références distantes

git remote prune origin

Cette commande supprime les références aux branches distantes supprimées de votre dépôt local.

2. Identifier les branches orphelines

git branch -vv

Affiche les informations de suivi des branches. Les branches dont le distant a été supprimé affichent un marqueur “gone”.

Pour filtrer uniquement ces branches :

git branch -vv | grep "gone" | awk '{print $1}'

3. Supprimer les branches

La suppression initiale avec xargs git branch --delete peut échouer pour les branches avec des commits non poussés.

La commande finale

Voici la commande à mettre en alias si vous avez activé la suppression des branches à la fusion sur GitHub :

git branch -vv | grep "gone" | awk '{print $1}' | xargs git branch --delete --force

Cette ligne combine l’élagage, l’identification et la suppression forcée en une seule opération pour une maintenance efficace du dépôt.

Créer un alias

Ajoutez cette ligne à votre ~/.bashrc ou ~/.zshrc :

alias git-clean='git remote prune origin && git branch -vv | grep "gone" | awk '\''{print $1}'\'' | xargs git branch --delete --force'

Ensuite, utilisez simplement git-clean pour nettoyer vos branches locales !