2012-09-26 14 views
34

मैं गिट का उपयोग करने के लिए काफी नया हूं, और मैं इसे एओकेपी एंड्रॉइड रोम में योगदान करने के लिए उपयोग करता हूं। मैंने सफलतापूर्वक कुछ शाखाएं बनाई हैं, कोड संशोधित किया है, और उन रिमोट एंड पर विलय किए गए कामों को अपलोड किया है। लेकिन मेरे स्थानीय भंडार में, वे शाखाएं अभी भी दिख रही हैं (भले ही वे कोई बदलाव न करें)। समस्या यह है कि जब मैंने उन शाखाओं को बनाया, तो मैंने उपफोल्डर से ऐसा किया जो संशोधित करने की आवश्यकता थी, इसलिए मेरे पास जाने के लिए कोई "उच्च" शाखाएं नहीं हैं। और इसके कारण, मैं उन शाखाओं को हटा नहीं सकता - गिट मुझे error: Cannot delete the branch 'MyMods' which you are currently on.मैं वर्तमान में एक स्थानीय गिट शाखा को कैसे हटा सकता हूं (या विलय) कर सकता हूं?

तो मैं उन शाखाओं से छुटकारा पाने के लिए क्या कर सकता हूं?

+0

Git इस क्योंकि यह इन लोक से थोड़ा बुद्धिमान है की अनुमति नहीं है // www। youtube.com/watch?v=zE8el_qscvE – Krumia

उत्तर

50

चेकआउट एक अलग शाखा पहले, को हटाने से पहले:

git checkout master 
git branch -d MyMods 

इसके अलावा, शाखाओं फ़ोल्डरों के साथ कोई लेना देना नहीं है। गिट हमेशा अपने सभी फ़ोल्डरों और फ़ाइलों के साथ, एक ही समय में पूरे भंडार को ट्रैक करता है। रिपोजिटरी के इतिहास में एक शाखा एक एकल प्रतिबद्धता, या स्नैपशॉट के सूचक के अलावा कुछ और नहीं है।

+0

मैं समझता हूं कि गिट और भौतिक फ़ोल्डरों के बीच अंतर क्या है। हर बार जब मैं "रेपो सिंक" चलाता हूं तो मुझे चेतावनी देखने से नफरत है कि मेरी शाखा पीछे की ओर है, और जब से मैं इसके साथ काम कर रहा हूं, तो मैं इससे छुटकारा पाना चाहता हूं। लेकिन अगर मैं एक मास्टर शाखा की जांच करता हूं, तो क्या मैं एक ही समस्या में भाग नहीं पाऊंगा क्योंकि तब मास्टर शाखा बस बिना किसी काम के लटक रही होगी? – user496854

+0

मैंने इस इरिजिन ट्यूटोरियल को फॉलो किया: http: //rootzwiki.com/topic/22424-aokp-gerrit- ट्यूटोरियल, और यह सिर्फ ऐप में एक शाखा बना रहा था जिसे मैं संशोधित कर रहा था। तो, क्या आपका मतलब है कि मुझे पूरे एओकेपी पेड़ को देखना है, और यह मेरे सामान्य रेपो सिंकिंग को कैसे प्रभावित करेगा? – user496854

+0

'गिट चेकआउट मास्टर' (या कोई अन्य शाखा) कोई प्रतिक्रिया नहीं देती है, कमांड हमेशा के लिए लगता है। मुझे लगता है कि एक शाखा किसी भी तरह टूट गई है, इसलिए मैं इसे हटाना चाहता हूं। –

3

हाँ सिर्फ एक और शाखा (शायद गुरु) और फिर चेकआउट:

Git चेकआउट मास्टर Git शाखा -d thebran

0

लेकिन मेरे स्थानीय भंडार में, उन शाखाओं अभी भी दिख रहे हैं (यहां तक ​​कि हालांकि वे कोई बदलाव नहीं दिखाते हैं)।

शाखाएं आपके स्थानीय रेपो में तब तक दिखाई देंगी जब तक आप उन्हें हटा नहीं देते। जब आप उन्हें धक्का देते हैं तो वे गायब नहीं होते हैं।

ऊपर दिए गए उत्तरों आपको बताते हैं कि शाखा को कैसे हटाया जाए। हालांकि, मैं जोड़ूंगा कि -D विकल्प का उपयोग थोड़ा अधिक शक्तिशाली है। यह विकल्प शाखा अपनी (अन) विलय कर स्थिति की परवाह किए बिना हटाता है:

git branch -D branchName 

यह शाखा विलोपन के परमाणु बम है। देखभाल के साथ प्रयोग करें।

+0

मूल पोस्ट विशेष रूप से कहता है कि यह मुझे शाखा को हटाने नहीं देगा क्योंकि मैं वर्तमान में इस पर हूं, और वहां जाने के लिए कोई उच्च शाखा नहीं है। तो आपका जवाब कैसे मदद करता है? – user496854

+0

आपको पहले शाखाएं स्विच करने की आवश्यकता होगी - इसे जोड़ने के लिए भूल गए। और मेरी टिप्पणी अन्य उत्तरों को भी इंगित करती है जो बताती है कि आप केवल उस शाखा को हटा सकते हैं जिस पर आप नहीं हैं। – gitlinggun

+0

"उच्च शाखाओं" से आपका क्या मतलब है?इसका मतलब गिट दुनिया में कुछ भी नहीं है। निश्चित रूप से – gitlinggun

1

शाखा आप नहीं हटा सकते हैं एक worktree तो आप पहली बार है कि worktree नष्ट करने के लिए आवश्यकता हो सकती है है: https::

rm -r MyMods 
git worktree list # shows MyMods 
git worktree prune 
git worktree list # doesn't show MyMods 
git branch -d MyMods 
संबंधित मुद्दे