"आप अभी तक पैदा होने वाली एक शाखा पर हैं" git सबमॉड्यूल जोड़ते समय


116

मैं अपनी .vim/bundlesनिर्देशिका में कुछ सबमॉड्यूल जोड़ने का प्रयास कर रहा हूं , और जब मैं इस विशेष रेपो गिट को जोड़ने का प्रयास करता हूं तो मुझे एक अजीब त्रुटि मिलती है जो मैंने पहले कभी नहीं देखी है:

$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'

यह किस कारण हो सकता है आपको पता है?

अगर मैं उसी रेपो को एक परीक्षण निर्देशिका (सबमॉड्यूल कमांड के माध्यम से नहीं) पर क्लोन करता हूं, तो यह ठीक काम करता है, और अपेक्षित फाइलें बनाता है।

जवाबों:


210

उस त्रुटि को ठीक करने के लिए, आपको उसी पथ के साथ फ़ोल्डर को .git/modules/निर्देशिका के अंदर सबमॉड्यूल में हटाना चाहिए । यह त्रुटि तब हो सकती है जब पहली बार submodule के लिए url गलत था जब submodule जोड़ा गया था।


2
धन्यवाद, वह दांव चल गया। पहले से थोड़ा गैर स्पष्ट था कि जब से मैं .vim/bundle/vim-scalaहटाने के लिए पथ पर क्लोन कर रहा था.git/modules/.vim/bundle/vim-scala
मैट बी

2
यदि आप खिड़कियों पर ध्यान दें कि निर्देशिका .git / मॉड्यूल तब तक दिखाई नहीं दे सकती जब तक कि आपdir /AH
paxos1977

13
जब मैं उस .git/modules/path/to/submoduleनिर्देशिका को हटाता हूं और सबमॉड्यूल को फिर से जोड़ने का प्रयास करता हूं, तो मुझे त्रुटि मिलती है । निम्न पथ को आपकी एक .gitignore फ़ाइलों में से किसी एक पर ध्यान नहीं दिया जाता है: पथ / / to submodule
ड्रू नॉक

1
@ ड्रू नोक को हटा दें। gim / बंडल / vim-scala git
सबमॉडल

खिड़कियों पर आप जीयूआई में छिपे फोल्डर को देखने और उन्हें हटाने के लिए विंडोज एक्सप्लोरर विकल्पों (उसी स्थान पर आप फ़ाइल एक्सटेंशन देखना पसंद करेंगे) का उपयोग कर सकते हैं।
user83358

13

आपको किसी मौजूदा रेपो के अंदर एक सबमॉड्यूल जोड़ने की आवश्यकता है , जो रेपो को सबमॉड्यूल लिंक जोड़ने और प्रतिबद्ध करने के लिए एक स्थिति में होना चाहिए , और सबमॉड्यूल रेपो के पास खुद को जांचने के लिए प्रतिबद्ध होना चाहिए।

यदि आप कहीं और एक नियमित क्लोन बना सकते हैं, तो अब, सबमॉड्यूल रेपो स्वयं ठीक होना चाहिए। हालांकि, ऐसा लगता है submodule addकि यदि क्लोन खाली नहीं है तो रेपो शिकायत करता है। यह आदमी सुझाव देता है कि यह केवल उसी submodule addकमांड को फिर से चलाने के द्वारा ठीक करने योग्य है ।

यदि आंतरिक रेपो खाली नहीं है, तो रेपो की जांच करें जिसे आप सबमॉड्यूल में रखना चाहते हैं । एक ही निर्देशिका है जहाँ आप भाग गया के लिए बदलें git submodule add, और रन git status, और git branchसत्यापित करने के लिए अपने युक्त रेपो बनाया कम से कम एक शाखा है और एक अजीब स्थिति में नहीं है।


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

इसके अलावा अजीब: fatalमेरे ओपी से चेतावनी के बाद , git पर एक खाली dir छोड़ता है .vim/bundle/vim-scala। मैंने यह भी देखा कि भले ही .gitmodulesअछूता हो .git/config, लेकिन इस github.com रेपो के संदर्भ में कुछ पंक्तियों को जोड़ा , लेकिन मुझे हटाने के बाद भी मुझे वही fatalत्रुटि संदेश मिलता है ।
मैट बी

7
+1 अर्घ! This guy suggests this is fixable by just running the same submodule add command again.। मैं इस समस्या से जूझ रहा हूं और एक समझदार जवाब खोजने की कोशिश कर रहा हूं और आखिरकार इसे ठीक कर लिया गया। यह बिट्सबकेट से सबमॉड्यूल बनाते समय MSYS के तहत 1.8.0 git के लिए था, इसलिए यदि आप उसी स्थिति में हैं, तो पहले यह प्रयास करें।
एरोन न्यूटन

मेरे लिए दो बार जोड़ने का भी काम किया। लेकिन मुझे समझ नहीं आता कि क्यों। कोई स्पष्टीकरण?
एलीस

यहां भी दो बार जोड़ना। मुझे यह समझने में अच्छा लगेगा कि क्यों
विनीसियस दांता

12

यह त्रुटि तब हो सकती है यदि आप एक सबमॉड्यूल जोड़ रहे हैं जिसमें masterशाखा नहीं है । यदि आप सबमॉड्यूल ( developउदाहरण के लिए) जोड़ते समय किसी अन्य शाखा का उपयोग करना चाहते हैं , तो आप निम्न कमांड का उपयोग कर सकते हैं:

git submodule add -b <branch> <repository>

1
मेरे मामले में रेपो को नया बनाया गया था और इसलिए उसके पास कोई फाइल और शाखाएँ नहीं थी (खाली थी), इसलिए git submodule add -b master <repo.git> <folder>मदद की
vladkras

यह मेरी समस्या थी, मेरे सबमॉड्यूल में केवल 2 शाखाएँ थीं, उनमें से कोई भी masterआपके लिए मेरे समाधान का काम नहीं है।
ग्वेर्निन 4

0

जैसा कि @ ड्रू-नॉक द्वारा आवंटित किया गया है, यह आपके .itignore फ़ाइल में सूचीबद्ध निर्देशिका नाम का उपयोग करके सबमॉड्यूल जोड़ने के प्रयास के कारण हो सकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.