submodules या subtrees का उपयोग किए बिना रिमोट रिपोजिटरी लाने का एक तरीका है, भले ही वह भंडार पूरी तरह से आपके साथ असंबंधित न हो और निर्देशिका को झुकाएं।
सबसे पहले, उस भंडार को .git/config
में अपने रिमोट्स में से एक के रूप में जोड़ें।उदाहरण के लिए, मान लें कि आप जिथब से ज़ल्डोर की ग्रफ लाइब्रेरी में लाना चाहते हैं। इन नामों को पूरी तरह से काल्पनिक हैं:
[remote "gruff-upstream"]
fetch = +refs/heads/*:refs/remotes/gruff/*
url = https://github.com/zaldor/gruff.git
अब आप एक git fetch gruff-upstream
सभी वस्तुओं को पाने के लिए कर सकते हैं। अब आप gruff
परियोजनाओं में उपलब्ध शाखाएं देख सकते हैं।
$ git branch -r
gruff/experimental-hack
gruff/master
origin/master
दो gruff
लाइनों gruff
की शाखाएं हैं। origin/master
हमारी खुद की उत्पत्ति है। नाम संघर्ष: gruff
में master
है और हमारे पास master
भी है। इससे कोई फर्क नहीं पड़ता: हम gruff/master
एक अलग स्थानीय शाखा नाम दे सकते हैं।
$ git branch -t gruff-master gruff/master
Branch gruff-master set up to track remote branch master from gruff-upstream.
अब, अगर हम git checkout gruff-master
, हमारे Git ट्रैक फ़ाइलों के सभी गायब हो जाएगा, gruff
काम कर प्रतिलिपि द्वारा बदल दिया:
$ git checkout gruff-master
अब हम हम एक छोटा सा यह gruff-master
शाखा को दूल्हे कर सकते हैं। उदाहरण के लिए, हम, उप-निर्देशिका के लिए अपनी फ़ाइलों के सभी स्थानांतरित कर सकते हैं अवांछित फ़ाइलें और इस तरह के निकालें:
$ mkdir gruff
$ git mv ...files... gruff
$ git commit -a -m "moving gruff stuff to gruff/ subdir"
अगला, हम अपने master
वापस स्विच करें। कर्कश फ़ाइलें गायब हो जाते हैं, और हमारे फ़ाइलें वापस आ रहे हैं:
$ git checkout master
अब हम में gruff
से कुछ फाइलें ला सकता है हमारे master
:
$ git checkout gruff-master -- gruff/file1 gruff/file2 ...
इन फ़ाइलों को हमारे काम की नकल में अमल में लाना और हमारी सूची में जुड़ रहे हैं:
$ git checkout
A gruff/file1
A gruff/file2
...
हम इन्हें अभी हमारे master
में कर सकते हैं।
जब अपस्ट्रीम gruff
फ़ाइलों के नए संस्करण प्रकाशित करता है, तो हम अपने gruff-branch
पर स्विच कर सकते हैं और खींच सकते हैं। हमारे सफाई और प्रतिबद्धता के खिलाफ नए बदलावों को हल करें। हमारे master
पर वापस, हम अपने gruff-master
स्थानीय ट्रैकिंग शाखा से उस नए अपडेट को चुन सकते हैं।
हां, यह मूल रूप से गिट को एक गौरवशाली पैच उपकरण के रूप में उपयोग कर रहा है। gruff-master
से सामग्री master
में चुनी गई कोई वंशावली नहीं है; यह सिर्फ जोड़ा फाइलों की तरह दिखता है। हालांकि, यह कुछ भी नहीं है और कई तरीकों से subtrees या मॉड्यूल से कम बोझिल है।
'मैन गिट-सबोड्यूलर' – Jokester
देखें अनुभाग को देखते हुए, शायद कहीं भी एक वास्तविक सबमिशन, और वर्तमान रेपो में कुछ सिम्लिंक? – Jokester
क्या आप मुझे एक पैदल यात्रा दे सकते हैं? मैं गिट submodules समर्थन के साथ खेल रहा हूँ। एक ईंट की दीवार का थोड़ा सा मारना क्योंकि 'वेबसाइट' फ़ोल्डर पहले से मौजूद है। सबमिशन जोड़ने के लिए फ़ोल्डर को शाखा/उड़ाने से पहले, मैं बस यह सुनिश्चित करना चाहता हूं कि मैं सही काम कर रहा हूं। – Doug