2010-06-25 12 views
5

के साथ काम करते समय मास्टर में अच्छी तरह से बदलाव कैसे प्राप्त करें this blogpost में वर्णित गिट वर्कफ़्लो का उपयोग करें। संक्षेप में: मास्टर को वापस विलय करने से पहले, हर कोई अपनी शाखा के भीतर विकसित होता है, आप स्वच्छ इतिहास प्राप्त करने के लिए अपनी शाखा को फिर से मास्टर करने के लिए पुन: पेश करते हैं।गिट: submodules

यह काम करता है।

अब हमारे पास एक सबमिशन है, और क्योंकि यह एक इन-हाउस प्लगइन (रेल) है, इसलिए हमें इसे अक्सर बदलना होगा। इसलिए ज्यादातर बार मैंने सामान्य शाखा और सबमिशन शाखा में दोनों को बदल दिया है।

उपरोक्त वर्कफ़्लो में submodules के साथ काम करने का सबसे अच्छा तरीका क्या है।

मैं पहले अपने परिवर्तनों को सबमिशन (गिट चेकआउट मास्टर, गिट पुल, गिट चेकआउट शाखा, गिट रीबेस मास्टर, गिट चेकआउट मास्टर, गिट मर्ज शाखा) में धक्का देने की कोशिश करता हूं।

फिर, जब मैं अपनी जड़ के लिए ऐसा करने की कोशिश करता हूं, तो मुझे हमेशा अपने प्लगइन (सबमिशन) पर एक त्रुटि मिलती है। git rebase --continue करने से पहले मुझे त्रुटि को हल करना होगा। तो अगर git mergetool पर आज़माएं तो मैं अपने फ़ोल्डर को एक फ़ाइल में बदल देता हूं।

रिबेस समाप्त होने के बाद, मैं फ़ाइल <folder_name> फ़ाइल को ओवरराइट करने के लिए बस <folder_name>.orig को पुनर्स्थापित करता हूं और सब ठीक है।

लेकिन किसी भी तरह से ऐसा लगता है कि एक बेहतर तरीका होना चाहिए।

संक्षेप में: चेकआउट-बी/रीबेस/विलय - वर्कफ़्लो के माध्यम से काम करते समय, आप एक साथ बदले गए पनडुब्बियों को कैसे संभालेंगे?

उत्तर

2

जो भी कार्यप्रवाह आप with submodules अनुसरण कर रहे हैं, वहाँ एक नियम है कि आप भूल नहीं करना चाहिए:
(से Git ट्यूटोरियल)

आप एक submodule के भीतर एक परिवर्तन करना चाहते हैं, तो आपको पहले की जाँच करनी चाहिए एक शाखा से बाहर, अपने परिवर्तन करें, सबमिशन के भीतर परिवर्तन प्रकाशित करें, और फिर नए प्रतिबद्धता को संदर्भित करने के लिए सुपरप्रोजेक्ट अपडेट करें।/से विलय माता पिता परियोजना कहा

$ git checkout master 
$ echo "adding a line again" >> a.txt 
$ git commit -a -m "Updated the submodule from within the superproject." 
$ git push 
$ cd .. 
$ git add a  # There is a gotcha here. Read about it below. 
$ git commit -m "Updated submodule a." 

तो आप अपने रिबेस प्रयास करने से पहले माता-पिता परियोजना के भीतर अपने submodule के नए राज्य के लिए प्रतिबद्ध किया?

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