में टूटी शाखा हटाएं मैंने "गिट चेकआउट -बी माइब्रैंच" के साथ शाखा बनाई है। ऐसा लगता है कि कुछ गलत हो गया, और अब मैं इसे "गिट शाखा-डी माइब्रैंच" का उपयोग करके हटा नहीं सकता। यह कहता है: त्रुटि: शाखा 'mybranch' नहीं मिला।गिट
गिट
उत्तर
यदि git branch -D
वास्तव में काम नहीं कर रहा है, तो आपका एकमात्र विकल्प इसे साइड-चरण करना है और गिट चेक-आउट की स्थिति को स्वयं संपादित करना है। आप अपने चेक-आउट (जहां .git
निर्देशिका है) और
- संपादित
.git/packed-refs
की जड़-निर्देशिका के पास जाना चाहिए; यदि आप अपनी शाखा के नाम के साथ एक रेखा देखते हैं तो इसे - अपनी शाखा के नाम पर फ़ाइल के लिए
.git/refs/heads
देखें; यदि आप एक देखते हैं, तो इसे
आपको स्पष्ट रूप से ऐसी शाखा को हटाने की आवश्यकता नहीं है जो मौजूद नहीं है। शाखाओं की सूची देखने के लिए git branch
का उपयोग करें, यदि यह वहां नहीं है, तो कोई शाखा नहीं है, और आपको इसे हटाने की आवश्यकता नहीं है। अन्यथा सही नाम टाइप करना सुनिश्चित करें और git branch -D
काम करना चाहिए।
फिर भी आपको एक टूटी हुई शाखा के बारे में ज्यादा परवाह करने की आवश्यकता नहीं है जो अभी भी आसपास हो सकती है लेकिन पहुंच योग्य नहीं है। गिट में शाखाएं वास्तव में साधारण 40 बाइट फाइलें हैं, इसलिए वास्तव में आपको चिंता करने की ज़रूरत नहीं है।
यह सुनिश्चित करने के लिए कि आपने गलती से शाखा को अपने रिमोट रिपोजिटरी में धक्का नहीं दिया है, 'गिट शाखा-ए' को भी आजमाएं। यदि आपके पास है, तो आप उस शाखा को हटाने के निर्देशों को यहां पढ़ सकते हैं [यहां] (http://gitready.com/beginner/2009/02/02/push-and-delete-branches.html) – Shahbaz
बेशक आप कर सकते हैं एक टूटी हुई/हटाई गई शाखा की वजह से धक्का नहीं है जो अभी भी पैक-रेफ में है। – steviesama
यह अभी भी पीछे की ओर एक दर्द है जो टूटी पुरानी शाखा रेफरी को किसी के गिट क्लाइंट को क्लोजिंग कर रही है। कोई भी नहीं चाहता है। जाहिर है कि दोस्त एक शाखा को हटाने की कोशिश कर रहा है जो गिट शाखा का उपयोग करने के लिए "प्रकट होता है" मौजूद है। इस सुझाव के लिए –
मैंने इस समस्या को ठीक करने के लिए git update-ref -d refs/heads/<branch name>
का उपयोग किया। संभवतः, यह वही काम करता है जो कि चयनित उत्तर में बताता है कि इसे गिट के सीएलआई के माध्यम से इंटरफेस किया गया है।
मुझे एक ही समस्या थी। जब भी मैंने git branch
कमांड निष्पादित किया, तो शाखा शाखाओं की सूची में थी, लेकिन मैं इसे हटा नहीं सका।
मेरे मामले में समाधान सरल और थोड़ा अप्रत्याशित था: मैंने टूटी हुई शाखा git checkout broken_branch
(हाँ, यह काम किया) की जांच की, फिर मैंने मास्टर पर वापस जांच की और ... फिर से git branch -D broken_branch
निष्पादित किया।
शाखा का नाम विशेष वर्ण यह उद्धृत किए जाने की आवश्यकता शामिल हैं:
$ git branch -D 'ENH-Adding-unit-``julian``-to-``to_datetime``'
धन्यवाद। मेरी शाखा को 'sandpit-ş-blockquotes' कहा जाता है - मैंने सुझाव दिया है कि आपने इसे उद्धृत करने का प्रयास किया है, लेकिन यह अभी भी काम नहीं करता है :-( '$ गिट शाखा-डी 'सैंडपिट-ş-blockquotes'। क्या आप क्या कोई और विचार/सुझाव हैं? – samjewell
@ सैमजवेल शायद यूनिकोड प्रतीकों का कंसोल द्वारा सही व्याख्या नहीं किया गया है? – Winand
@samjewell मैं SourceTree https://pp.vk.me/c636719/v636719561/19786/ में शाखा बनाने और हटाने में सक्षम था Q5DRz-b39VE.jpg – Winand
मैं एक ही समस्या git branch -d <branch_name>
काम नहीं कर रहा था, और मैं .git/packed-refs
और .git/refs/heads
में कुछ भी नहीं मिला था, लेकिन मैं
.git/refs/remotes/origin
शाखाओं के नाम से जो मैं स्थानीय रूप से और दूरस्थ रूप से हटाने में सक्षम नहीं था। लेकिन branch_name
के साथ फ़ाइलों को हटाने के बाद जिन्हें मैं हटाना चाहता था, यह स्थानीय में दिखाई नहीं दे रहा था।
दूरदराज के उपयोग पर इसे हटाने के लिए
git fetch -p origin
-p --prune
विकल्प बताता है कि प्राप्त करने में कठिनाई से पहले, किसी भी दूरस्थ ट्रैकिंग संदर्भ जो अब रिमोट पर मौजूद हटा दें। फिर कमांड
git push origin :<branch_name_you_was_unable_to_delete>
दूरस्थ पर हटाने के लिए उपयोग करें।
और आप कर रहे हैं।:)
यहां एक बेवकूफ सवाल है: आप कैसे जानते हैं कि इसे पहले ही हटाया नहीं गया है और अभी भी मौजूद है? – bdares
क्या आप अपनी शाखा 'गिट शाखा' में देख सकते हैं, या डिस्क पर '.git/packed-refs' या' .git/refs/heads' में देख सकते हैं? – Rup
हां, मैं गिट शाखा –