लघु जवाब
यदि आप निम्नलिखित कमांड के अधिक विस्तृत स्पष्टीकरण चाहते हैं, तो अगले अनुभाग में लंबे उत्तर देखें।
दूरस्थ शाखा हटाना
git push origin --delete <branch> # Git version 1.7.0 or newer
git push origin -d <branch> # Shorter version (Git 1.7.0 or newer)
git push origin :<branch> # Git versions older than 1.7.0
स्थानीय शाखा हटाना
git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force-delete un-merged branches
स्थानीय रिमोट ट्रैकिंग शाखा को हटाना
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches
git fetch <remote> -p # Shorter
उत्तर है : वहाँ से हटाने के लिए तीन अलग-अलग शाखाओं कर रहे हैं!
जब आप स्थानीय और दूरस्थ दोनों शाखाओं को हटाने का काम कर रहे हों, तो ध्यान रखें कि इसमें तीन अलग-अलग शाखाएँ शामिल हैं :
- स्थानीय शाखा
X
।
- दूरस्थ मूल शाखा
X
।
- स्थानीय दूरस्थ ट्रैकिंग शाखा
origin/X
जो दूरस्थ शाखा को ट्रैक करती है X
।
मूल पोस्टर का इस्तेमाल किया:
git branch -rd origin/bugfix
जिसने केवल उसकी स्थानीय रिमोट-ट्रैकिंग शाखा को हटा दिया origin/bugfix
, और वास्तविक रिमोट शाखा को bugfix
चालू नहीं किया origin
।
उस वास्तविक दूरस्थ शाखा को हटाने के लिए , आपको आवश्यकता है
git push origin --delete bugfix
अतिरिक्त जानकारिया
निम्नलिखित अनुभाग आपके दूरस्थ और दूरस्थ-ट्रैकिंग शाखाओं को हटाते समय विचार करने के लिए अतिरिक्त विवरणों का वर्णन करते हैं।
दूरस्थ शाखाओं को हटाने के लिए पुश करने से दूरस्थ ट्रैकिंग शाखाएँ भी हटा दी जाती हैं
ध्यान दें कि X
कमांड लाइन से रिमोट शाखा को git push
हटाने से स्थानीय रिमोट-ट्रैकिंग शाखा को भी हटा दिया जाएगा origin/X
, इसलिए अप्रचलित रिमोट-ट्रैकिंग शाखा को git fetch --prune
या उसके साथ जोड़ना आवश्यक नहीं है git fetch -p
। हालांकि, अगर आप इसे वैसे भी करते हैं, तो यह दुख नहीं होगा।
आप यह सत्यापित कर सकते हैं कि रिमोट-ट्रैकिंग शाखा origin/X
को निम्न चलाकर भी हटा दिया गया था:
# View just remote-tracking branches
git branch --remotes
git branch -r
# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a
अप्रचलित स्थानीय रिमोट-ट्रैकिंग शाखा की उत्पत्ति / एक्स को देखकर
यदि आपने अपनी दूरस्थ शाखा X
को कमांड लाइन (जैसे ऊपर) से नहीं हटाया है , तो आपकी स्थानीय रिपॉजिटरी में अभी भी (अब अप्रचलित) रिमोट-ट्रैकिंग शाखा होगी origin/X
। यह तब हो सकता है यदि आपने उदाहरण के लिए GitHub के वेब इंटरफेस के माध्यम से एक दूरस्थ शाखा को हटा दिया।
इन अप्रचलित रिमोट-ट्रैकिंग शाखाओं को हटाने का एक विशिष्ट तरीका (Git संस्करण 1.6.6 के बाद से) केवल या छोटे के git fetch
साथ चलना है । ध्यान दें कि यह किसी भी दूरस्थ शाखा के लिए सभी अप्रचलित स्थानीय रिमोट-ट्रैकिंग शाखाओं को हटा देता है जो अब रिमोट पर मौजूद नहीं हैं :--prune
-p
git fetch origin --prune
git fetch origin -p # Shorter
यहां 1.6.6 रिलीज नोट्स (जोर मेरा) से प्रासंगिक उद्धरण है :
"git fetch" सीखा --all
और --multiple
विकल्प, कई रिपोजिटरी से लाने के लिए, और --prune
रिमोट ट्रैकिंग शाखाओं को हटाने के लिए विकल्प जो बासी चले गए। ये "git रिमोट अपडेट" और "git Remote prune" को कम आवश्यक बनाते हैं (हालांकि "रिमोट अपडेट" को हटाने की कोई योजना नहीं है और न ही "Remote prune", हालांकि)।
अप्रचलित रिमोट-ट्रैकिंग शाखाओं के लिए ऊपर स्वचालित छंटाई का विकल्प
वैकल्पिक रूप से, अपनी अप्रचलित स्थानीय रिमोट-ट्रैकिंग शाखाओं के बारे में बताने के बजाय git fetch -p
, आप मैन्युअल रूप से शाखा (तों) --remote
या -r
झंडों को हटाकर अतिरिक्त नेटवर्क संचालन करने से बच सकते हैं :
git branch --delete --remotes origin/X
git branch -dr origin/X # Shorter
यह सभी देखें