Problem: Ich möchte alle lokalen Zweige löschen, die keine Fernbedienung haben. Es ist leicht genug, die Namen der Zweige in eine zu leiten git branch -D {branch_name}
, aber wie bekomme ich diese Liste überhaupt?
Beispielsweise:
Ich erstelle einen neuen Zweig ohne Fernbedienung:
$ git co -b no_upstream
Ich liste alle meine Filialen auf und es gibt nur eine mit einer Fernbedienung
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
Welchen Befehl kann ich ausführen, um no_upstream
eine Antwort zu erhalten?
Ich kann laufen git rev-parse --abbrev-ref --symbolic-full-name @{u}
und das wird zeigen, dass es keine Fernbedienung hat:
$ 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>...]'
Da dies jedoch ein Fehler ist, kann ich ihn nicht verwenden oder an andere Befehle weiterleiten. Ich beabsichtige, dies entweder als Alias für ein Shell-Skript zu verwenden git-delete-unbranched
oder vielleicht ein supereinfaches Gem zu erstellengit-branch-delete-orphans