Problema: desidero un modo per eliminare tutti i rami locali che non dispongono di un telecomando. È abbastanza facile convogliare i nomi dei rami in un git branch -D {branch_name}
, ma come faccio a ottenere quell'elenco in primo luogo?Elenco di tutte le filiali locali senza un telefono
Ad esempio:
ho creare un nuovo ramo senza telecomando:
$ git co -b no_upstream
vi elenco tutti i miei rami, c'è solo 1 con un telecomando
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Quale comando posso correre a ottenere no_upstream
come risposta?
posso correre git rev-parse --abbrev-ref --symbolic-full-name @{u}
e che mostrerà che non ha alcun remoto:
$ 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>...]'
Ma come questo è un errore, non mi permette di usarlo o pipe ad altri comandi. Ho intenzione di utilizzare questo come uno script di shell alias'd a git-delete-unbranched
o forse fare una gemma super semplice come git-branch-delete-orphans
Qualsiasi aiuto sarebbe apprezzato! Grazie
Vedere anche http://stackoverflow.com/questions/4950725/how-do-i-get-git-to-show-me-which-branches-are-tracking-what –
Possibile duplicato di [Rimuovi rami locali non più sul telecomando] (http://stackoverflow.com/questions/7726949/remove-local-branches-no-longer-on-remote) – ks1322