- Une commande simple pour résoudre l’ancien problème de nettoyage des branches Git a été retrouvée dans une documentation interne de développement de la CIA
git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d
- La commande supprime en lot les branches fusionnées en excluant la branche actuelle et master des résultats de
git branch --merged
- Il existe aussi une version adaptée aux projets modernes, qui exclut les branches
main et develop
- On peut l’enregistrer comme alias Git pour automatiser une tâche répétitive ; c’est un outil simple mais utile pour améliorer durablement l’efficacité et garder un dépôt bien rangé
Une astuce Git découverte dans Vault7
- Les documents Vault7 publiés par WikiLeaks en 2017 contenaient des outils de piratage de la CIA ainsi que de la documentation interne de développement
- L’une des pages proposait une collection d’astuces et de tricks Git, dont la plupart relevaient d’usages classiques comme la modification de commits, le stash ou
bisect
- La commande en une ligne trouvée dans ce document est restée dans mon
~/.zshrc jusqu’à aujourd’hui
Le vieux problème du nettoyage des branches
- Dans un dépôt Git local, les branches fusionnées s’accumulent avec le temps et deviennent difficiles à gérer
- Branches de fonctionnalité, hotfixes ou branches d’expérimentation restent souvent après fusion, ce qui encombre la sortie de
git branch
- La commande
git branch --merged permet d’identifier les branches fusionnées, mais leur suppression manuelle est fastidieuse
La commande d’origine du document de la CIA
Version modernisée de la commande
- Comme la plupart des projets utilisent désormais la branche
main, on peut modifier la commande comme suit
git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d
- Après exécution depuis la branche
main après déploiement, des dizaines de branches peuvent être réduites à quelques-unes
- Cette commande peut être enregistrée comme alias Git pour être lancée plus facilement
alias ciaclean='git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d'
- Ensuite, il suffit de saisir
ciaclean dans le dépôt pour lancer automatiquement le nettoyage
Efficacité et aspect pratique
- Cette commande permet de gagner quelques minutes chaque semaine et d’avoir une liste de branches propre
- Simple, mais considérée comme un outil pratique offrant un gain de productivité continu
Aucun commentaire pour le moment.