2013-02-04 23 views
6

मैं अपने सॉफ़्टवेयर के लिए संस्करण नियंत्रण प्रणाली git का उपयोग करता हूं। और स्रोत कोड के भीतर, मैं स्वचालित रूप से github से सॉफ़्टवेयर लाने के लिए go get का उपयोग करता हूं। मैं "डबल गिट" स्थिति को कैसे संभाल सकता हूं?गिट + जाओ - सबप्रोजेक्ट्स को कैसे संभालें

जब मैं पर git add चलाता हूं, जो कि एक गिट भंडार है, तो क्या यह कुछ भी जोड़ देगा? (जब मैं git status चलाता हूं तो यह ऐसा नहीं लगता है)

क्या मुझे git get अतिरिक्त उपनिर्देशिका के लिए git submodule का उपयोग करना चाहिए?

इस स्थिति में सबसे अच्छा अभ्यास क्या है?


संपादित करें: मेरे पास मेरे सॉफ्टवेयर प्रोजेक्ट के लिए कस्टम $GOPATH वातावरण है। यही कारण है कि src/github.com/somename/someproject निर्देशिका मेरी सॉफ़्टवेयर निर्देशिका पदानुक्रम के अंदर पाई जाती है।

+0

जितना अधिक मैं इसके बारे में सोचता हूं उतना ही मैं 'gitub.com/somename/someproject' उपनिर्देशिका में' .git' निर्देशिका से छुटकारा पाने के लिए प्रेरित हूं। इस तरह से मैं सिर्फ कोड को फ्रीज करता हूं और इसे अपने मुख्य भंडार में दबा देता हूं। बदसूरत लेकिन मुझे लगता है कि ठीक काम करता है। – topskip

+2

ऐसा लगता है जैसे goven (https://github.com/kr/goven) ऐसा करता है। – topskip

उत्तर

3

जबकि @ निमो का जवाब शायद जाने का तरीका है, मैंने यही किया: मैंने .git और .gitignorego get डाउनलोड की गई रिपॉजिटरीज़ से फ़ाइलों को तोड़ दिया। मेरे पास स्रोत स्रोत मेरे स्रोत निर्देशिका के अंदर है: GOPATH=.../myproject/src/go/। इस तरह सभी go get डाउनलोड मेरे प्रोजेक्ट पेड़ के अंदर हैं और मैं इसे गिट के साथ संभाल सकता हूं।

मुझे लगता है कि यह "गवेन" (मेरे प्रश्न पर मेरी टिप्पणी देखें) है, लेकिन मैं इसे काम करने में सक्षम नहीं था।

2

यदि आप अपने द्वारा उपयोग किए जाने वाले विदेशी पैकेजों के संशोधन को संग्रहीत करना चाहते हैं, तो आयात रिमोट सिंटैक्स पर जाएं, github.com/user/project/sub/directory/revision जैसे कुछ का समर्थन करेगा, जो दुर्भाग्यवश नहीं है। इस विषय के बारे में गोलांग-नट मेलिंग सूची पर discussion है, संभावित समाधान और चेतावनियों के लिए इसे देखें।

ऐसा करने का सबसे आसान तरीका संभवतः उन परियोजनाओं को फोर्क करना है जो आप उपयोग करते हैं और अपने फोर्क आयात करते हैं, इसलिए आपके पास अपडेट पर पूर्ण नियंत्रण है। जिथब जैसे प्लेटफॉर्म इसे ऐसा करना आसान बनाते हैं।

go help remote से:

नई डाउनलोड किया संकुल पहले निर्देशिका GOPATH वातावरण चर में सूचीबद्ध करने के लिए लिखा जाता है (देखें 'की मदद gopath जाना')।

तो आपका प्रस्तावित सबमिशन समाधान संभव है लेकिन उपयोग करने में आसान नहीं है, क्योंकि आपको लाने के दौरान कस्टम GOPATH निर्दिष्ट करना होगा। मैं पुस्तकालय को फोर्क करने और कांटा का संदर्भ देने की सिफारिश करता हूं।