Problème: je veux un moyen de supprimer toutes les succursales locales que j'ai qui n'ont pas de télécommande. Il est assez facile de diriger les noms des branches dans un git branch -D {branch_name}
, mais comment puis-je 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 succursales, et il n'y en a qu'une seule avec une télécommande
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Quelle commande puis-je exécuter pour obtenir no_upstream
une 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, cela ne me permettra pas de l'utiliser ou de le diriger vers d'autres commandes. J'ai l'intention de l'utiliser soit comme un script shell alias pourgit-delete-unbranched
ou peut-être faire une gemme super simple commegit-branch-delete-orphans