ปัญหา: ฉันต้องการวิธีลบสาขาภายในทั้งหมดที่ฉันมีที่ไม่มีรีโมต ง่ายพอที่จะใส่ชื่อสาขาลงใน a git branch -D {branch_name}
แต่ฉันจะรับรายชื่อนั้นได้อย่างไรในตอนแรก
ตัวอย่างเช่น:
ฉันสร้างสาขาใหม่โดยไม่มีรีโมท:
$ git co -b no_upstream
ฉันแสดงรายชื่อสาขาทั้งหมดของฉันและมีเพียงสาขาเดียวที่มีรีโมท
$ git branch -a
master
* no_upstream
remotes/origin/HEAD -> origin/master
remotes/origin/master
ฉันสามารถรันคำสั่งอะไรได้no_upstream
เป็นคำตอบ
ฉันวิ่งได้git rev-parse --abbrev-ref --symbolic-full-name @{u}
และนั่นจะแสดงว่ามันไม่มีรีโมท:
$ 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>...]'
แต่เนื่องจากนี่เป็นข้อผิดพลาดจึงไม่อนุญาตให้ฉันใช้หรือไปป์ไปยังคำสั่งอื่น ฉันตั้งใจจะใช้สิ่งนี้เป็นนามแฝงของเชลล์สคริปต์git-delete-unbranched
หรืออาจจะสร้างอัญมณีที่เรียบง่ายสุด ๆ เช่นgit-branch-delete-orphans