2012-05-04 14 views
16

शायद बहुत मूर्ख सवाल, - लेकिन मैं अब तक .gitmodules फ़ाइल में submodules निर्दिष्ट कर रहा है। हाल ही में मुझे मारा है कि संभवतः एक ही कारण के लिए .git/config का उपयोग करना संभव है, इसलिए मुझे बाहरी निर्देशिका को कार्यशील निर्देशिका में रखना नहीं होगा?.gitmodules के बीच अंतर और .git/config में submodules निर्दिष्ट?

.git/config:

[submodule "path/to/repo"] 
    url = [email protected]:username/repo.git 

.gitmodules

[submodule "path/to/repo"] 
    path = path/to/repo 
    url = [email protected]:username/repo.git 

इन मूलतः एक ही बातें कर रहे हैं?

उत्तर

17

.git/info/exclude और .gitignore से समान उत्तर।

.gitmodules फ़ाइल भंडार में शामिल किया जा सकता है और .git (जैसे .git/config) निजी है (यदि आप इसे में नहीं जोड़ सकते में, हर कोई (अर्थात, यह जोड़ा गया है और किसी भी नियमित रूप से फ़ाइल की तरह प्रतिबद्ध किया जा सकता है) के साथ साझा किया है, जबकि कुछ भी भंडार)।

+3

क्या होगा यदि मेरे पास .git/config और .gitmodules में निर्दिष्ट विभिन्न रिपोज़ हैं - कौन सा प्राथमिकता लेगा? – Stann

9

git submodule sync आपकी कॉन्फ़िगरेशन फ़ाइल को .gitmodules फ़ाइल से विवरण के साथ अपडेट करेगा, इसलिए बाद वाले को 'मास्टर' माना जाना चाहिए - यह @ Artefact2 द्वारा बताए गए रेपो के बीच पारित किया गया है।

यह उपयोगी है जब सबमिशन यूआरएल अपस्ट्रीम बदलता है और आपको तदनुसार अपने स्थानीय भंडारों को अपडेट करने की आवश्यकता होती है।

+0

यदि उनके पास अलग-अलग रिपोज निर्दिष्ट हैं तो कौन सा प्राथमिकता लेगा? 'सिंक' उप-कमांड के लिए – Stann

+3

यह .gitmodules है जो प्राथमिकता लेता है, लेकिन कॉन्फ़िगरेशन में सूचीबद्ध नहीं है, इसके बारे में अतिरिक्त स्थितियों के लिए मैन्युअल देखें। –

संबंधित मुद्दे