समस्या: मुझे उन सभी स्थानीय शाखाओं को हटाने का एक तरीका चाहिए जो मेरे पास हैं जिनके पास रिमोट नहीं है। शाखाओं के नामों को एक में पाइप करना काफी आसान है 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