Problem: Chcę sposobu na usunięcie wszystkich lokalnych oddziałów, które mam, a które nie mają pilota. Łatwo jest przelać nazwy gałęzi do a git branch -D {branch_name}
, ale jak w pierwszej kolejności uzyskać tę listę?
Na przykład:
Tworzę nowy oddział bez pilota:
$ git co -b no_upstream
Wymieniam wszystkie moje oddziały, a tylko jeden ma pilota
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Jakie polecenie mogę uruchomić, aby otrzymać no_upstream
odpowiedź?
Mogę biec git rev-parse --abbrev-ref --symbolic-full-name @{u}
i to pokaże, że nie ma pilota:
$ 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>...]'
Ale ponieważ jest to błąd, nie pozwala mi go używać ani przesyłać do innych poleceń. Zamierzam użyć tego jako aliasu skryptu powłoki git-delete-unbranched
lub może stworzyć super prosty klejnotgit-branch-delete-orphans