रेपो क्लोन करते समय Git सबमॉड्यूल फ़ोल्डर को खाली करें


130

मेरे पास एक रेपो होस्ट है जो https://github.com/aikiframework/json पर होस्ट किया गया है । अपनी स्थानीय प्रति पर, मैंने कमांड का उपयोग करके एक सबमॉड्यूल जोड़ा

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

फिर मैंने एक कमिट और पुश किया, और परिवर्तन गीथहुब पर दिखाई देते हैं (मैं इस पर क्लिक कर सकता हूं)। लेकिन जब मैं रेपो को क्लोन करता हूं

git clone https://github.com/aikiframework/json.git

सबमॉड्यूल फ़ोल्डर json-rpc खाली है।

मुझे यहां क्या समझ नहीं आ रहा है? क्या मैं कुछ भूल गया था? वह फोल्डर खाली क्यों है?

जवाबों:


200

ठीक है मैंने पाया --recursiveकि रेपो क्लोनिंग करते समय इसे जोड़ना होगा ।

तो क्लोन कमांड समाप्त होती है:

git clone https://github.com/aikiframework/json.git --recursive

229
हां। आप इस तथ्य के बाद भी सबमॉडल्स ला सकते हैं git submodule update --init, अगर आप पहले से ही क्लोन कर लें, लेकिन भूल गए --recursive
अंबर

4
बस इस समस्या का सामना करना पड़ा कि विकसित शाखा पर एक सबमॉड्यूल है, लेकिन मास्टर शाखा पर अभी तक नहीं। जब आप git रेपो का उपयोग करते हुए --recursive को क्लोन करते हैं तो यह मास्टर ब्रांच पर सबमॉड्यूल नहीं पाएगा, और आपको सबमॉड्यूल प्राप्त करने के लिए Ambers कमेंट "git सबमॉडल अपडेट - इनिट" का उपयोग करके इसे लाना होगा।
बजे d4Rk

11
आप का उपयोग करते हैं git submodule update --initआप प्रत्येक रेपो के लिए जाना होगा और ऐसा git checkout masterअन्यथा आप त्रुटि प्राप्त होगी You are not currently on a branch.पर git pullजब आप किसी नए संस्करण में इसे अद्यतन करने का प्रयास करें।
Noitidart

@ नोइटीडार्ट एक ऐसा तरीका है जो ऐसा नहीं करता है? (पहले ही प्रोजेक्ट की क्लोनिंग के बाद)
बोरिंग करें

1
@Noitidart update --initसंकेत के लिए धन्यवाद । यह तब मदद करता है जब मूल क्लोन इसमें नहीं था --recursiveऔर बस लापता सबमॉड्यूल्स को खींचना चाहता था।
जरी तुर्किया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.