Problème : Je veux un moyen de supprimer toutes les branches locales que j'ai et qui n'ont pas de télécommande. Il est assez facile de mettre les noms des branches dans un fichier git branch -D {branch_name}
mais comment obtenir cette liste en premier lieu ?
Par exemple :
Je crée une nouvelle branche sans télécommande :
$ git co -b no_upstream
Je liste toutes mes branches, et il n'y en a qu'une avec une télécommande
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Quelle commande puis-je lancer pour obtenir no_upstream
comme réponse ?
Je peux courir git rev-parse --abbrev-ref --symbolic-full-name @{u}
et cela montrera qu'il n'a pas de télécommande :
$ git rev-parse --abbrev-ref --symbolic-full-name @{u}
error: No upstream configured for branch 'no_upstream'
error: No upstream configured for branch 'no_upstream'
fatal: ambiguous argument '@{u}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Mais comme il s'agit d'une erreur, je ne peux pas l'utiliser ou la transmettre à d'autres commandes. J'ai l'intention de l'utiliser soit comme un script shell aliasé à git-delete-unbranched
ou peut-être faire un Gem super simple comme git-branch-delete-orphans