मैं Sharelatex (GitHub) का उपयोग कर एक वेबसाइट पर काम कर रहा हूँ, लेकिन यह अन्य रिपोजिटरी कि मुख्य परियोजना के निर्माण के लिए उपयोग किया जाता है। [...] मैं गिट में सबोड्यूल्यूल में आया लेकिन चूंकि मुख्य प्रोजेक्ट में कोई सबमिशन प्रकार नहीं है, इसलिए मैं इसका उपयोग करने में असमर्थ हूं।
वास्तव में, आपके पास एक सबमिशन है। यही एक घोंसला भंडार है, और (मैं इसके बारे में गंभीर हूं) जहां तक आपको ग्रोक सबोड्यूल को समझने की आवश्यकता है, सभी में सबोड्यूल्यूज़ हैं। Submodules को समझने के लिए, कल्पना करें कि आपके पास एक नेस्टेड रिपोजिटरी है (आप करते हैं) और प्रशासनिक आवश्यकताओं के बारे में सोचें, डीवीसी में उस सेटअप का समर्थन करने के लिए क्या करने की आवश्यकता है।
शुरुआत करने वालों के लिए, जब लोग किसी प्रोजेक्ट को क्लोन करते हैं जो कुछ रेपो से सबमिड्यूल का उपयोग करता है, तो आपने सभी ने तय किया है कि प्रकाशित काम करता है, क्लोन को स्पष्ट रूप से सबप्रोजेक्ट रिपोजिटरी भी नहीं मिलेगी (निश्चित रूप से इसे आपके निजी और ईश्वर- जानता है कि आपने क्या किया-संस्करण-संस्करण किया है)। इसलिए उन्हें अपने स्वयं के प्रकाशित भंडारों में से किसी एक से सबप्रोजेक्ट रेपो भी प्राप्त करना होगा।
आप लोगों को अपने कामों को लाने के लिए कहां बताते हैं कि आवश्यक सबप्रोजेक्ट कहां प्राप्त करें?निश्चित रूप से, आपको किसी प्रतिबद्ध फ़ाइल में कहीं भी एक नोट छोड़ना है, "यहां एक रेपो है जिसके पास कोई आवश्यक $ सबप्रोजेक्ट काम करना चाहिए"। git submodule
इस तरह के नोट्स स्टोर करने के लिए पारंपरिक स्थान के रूप में .gitmodules
पर बस गया है।
अगला: ठीक है, अगर आप उन्हें भेजे गए यूआरएल को ऑफ़लाइन करते हैं तो दूसरों को क्या करना है? वे स्पष्ट रूप से एक और रेपो का उपयोग करने की आवश्यकता होगी। इसलिए, .gitmodules
केवल सुझाव है, git submodule
कमांड आपके .git/config
में वर्तमान मानों का उपयोग करता है, जो git submodule init
ने .gitmodules` में सुझाए गए लोगों से पॉप्युलेट किया है।
git submodule
के ऑपरेशन सभी इस तरह हैं। इसके बारे में भूल जाओ। जब तक आपको पहले से ही जो कुछ मिल रहा है उसे करने में थोड़ी सी सहायता की आवश्यकता न हो, तब तक कमांड को देखने की भी परेशानी न करें। ज्ञान से शुरू करें, सरल तथ्य यह है कि एक सबमिशन एक नेस्टेड रेपो से ज्यादा कुछ नहीं है, और इसका उपयोग करने वाली परियोजना उस प्रतिबद्ध आईडी से कहीं ज्यादा कुछ नहीं करती है जो कि उस नेस्टेड रेपो में कहीं भी होने वाली है। बस। यह सब एक सबमिशन है।
जैसे ही आप काम करने की ज़रूरत वाले कठिन कार्यों में भाग लेते हैं, git submodule
उप-आदेश देखें जो उन्हें आपके लिए करता है। आपको उप-आदेश का उपयोग करने की आवश्यकता नहीं है। वह सब सबमांडेंड सरल कार्य स्वचालित कर रहा है जो अन्यथा श्रमिक होगा। यह करने के लिए आपको जो कुछ भी करने की ज़रूरत है, वह करने के लिए यह टूलकिट है, और पृथ्वी पर कोई रास्ता नहीं है या यह कुछ मनमानी और पर्याप्त (< - यह कठिन हिस्सा है) को दुनिया में हर किसी पर अबास्ट्रक्शन लगा सकता है या लागू करना चाहिए। तो यह एक हथियार बैग है।
उस ने कहा, एक महत्वपूर्ण सुरक्षा खेल git submodule update
और git submodule add
आपके लिए git clone
करते समय आपके लिए प्रदर्शन करता है। रिपोजिटरीज में पारंपरिक रूप से [उप] प्रोजेक्ट के तहत वास्तविक रेपो सामग्री .git
को अपनाने के लिए होती है, लेकिन यदि आप ऐसी शाखा की जांच करते हैं जिसमें उस सबप्रोजेक्ट नहीं है या अन्यथा आवश्यकता है या उस सबप्रोजेक्ट की आवश्यकता है, तो इसके .git
भी चले जाएंगे - नहीं आप चाहते हैं कि यह न केवल आपकी चेक आउट सामग्री बल्कि पूरे वास्तविक रेपो को न रखे। तो जब git submodule update
इसका प्रारंभिक क्लोन करता है, तो यह प्रोजेक्ट के .git
निर्देशिका को प्रोजेक्ट के रेपो में एक आसान (और मनमाने ढंग से) छोटे नुक्कड़ में उछालता है, और .git
निर्देशिका को प्रतिस्थापित करता है, यह .git
फ़ाइल के साथ संबंधित स्रोत से बस बाहर निकलता है स्थानांतरित निर्देशिका।
आपके पास वर्तमान में रेपो पर किए गए प्रारंभिक उत्थान को प्राप्त करने के लिए, इसे अपने वर्तमान रेपो से बाहर ले जाएं, जहां भी आप इसे डालते हैं वहां से जोड़ें और अपडेट करें, और फिर दूसरों की सुविधा के लिए .gitmodules
में अपस्ट्रीम यूआरएल को ठीक करें।
वहां। अब आप गिट सबमिड्यूल को समझने के लिए आपको जो कुछ भी जानने की जरूरत है उसे जानते हैं और git submodule
कमांड आपके लिए क्या कर रहा है, और यह समझने के लिए कि आपको वास्तव में प्रत्येक छोटे को समझने की परवाह क्यों नहीं है, आपको समझने के लिए केवल वही जानकारी प्राप्त होती है, इसके मैनपेज पर आगे की बात। कम से कम मुझे तो यही लगता है।
यदि मुझे कुछ भी महत्वपूर्ण याद आया है, तो मुझे टिप्पणियों में सुधार (सौम्य या बदमाश, मुझे वास्तव में परवाह नहीं है) में बहुत खुशी होगी।