2017-03-27 3 views
0

J'essaie de supprimer toutes mes branches fusionnées. J'ai toujours utiliséSupprimer toutes les branches git qui ont été fusionnées - Fatal: nom de branche requis?

git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d mais pour une raison quelconque cela ne fonctionnera plus, même si j'ai déjà utilisé cette commande auparavant. Renvoie l'erreur "Fatal: nom de la branche requise"

+0

Essayez d'omettre '' | xargs git branche -d'. Si cela ne l'explique pas, essayez d'omettre le 'egrep', pour plus d'illumination. – torek

Répondre

4

S'il n'y a pas d'entrée fournie sur stdin - par exemple, si le pipeline précédent ne produit aucune sortie - xargs exécutera votre commande sans arguments. Autrement dit, si ceci:

git branch --merged | egrep -v "(^\*|master|dev)" 

ne produit aucune sortie, puis xargs lancerez

git branch -d 

qui, si vous deviez essayer vous-même sur la ligne de commande, produit:

fatal: branch name required 

La solution la plus simple consiste à ajouter le drapeau --no-run-if-empty à xargs:

git branch --merged | 
egrep -v "(^\*|master|dev)" | 
xargs --no-run-if-empty git branch -d 
+0

Merci d'ajouter dans le cas où il n'y a pas d'autres branches à supprimer! – AjaxLeung