Sorun: Uzaktan kumandası olmayan tüm yerel şubelerimi silmenin bir yolunu istiyorum. Dalların adlarını a şeklinde aktarmak yeterince kolaydır git branch -D {branch_name}
, ancak bu listeyi ilk etapta nasıl edinebilirim?
Örneğin:
Uzaktan kumanda olmadan yeni bir şube oluşturuyorum:
$ git co -b no_upstream
Tüm şubelerimi listeliyorum ve uzaktan kumandalı sadece bir tane var
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
no_upstream
Cevap almak için hangi komutu çalıştırabilirim ?
Koşabilirim git rev-parse --abbrev-ref --symbolic-full-name @{u}
ve bu onun uzaktan kumandası olmadığını gösterecek:
$ 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>...]'
Ancak bu bir hata olduğu için kullanmama veya başka komutlara aktarmama izin vermiyor. Bunu ya bir kabuk betiği takma adı olarak kullanmayı git-delete-unbranched
ya da belki de süper basit bir Gem yapmak niyetindeyim.git-branch-delete-orphans