मेरे पास एक git सुपरप्रोजेक्ट है जो कई सबमॉड्यूल्स को संदर्भित करता है और मैं अपने प्रोजेक्ट के बाकी सदस्यों के लिए वर्कफ़्लो को लॉक करने की कोशिश कर रहा हूं।
इस प्रश्न के लिए, मान लीजिए कि मेरा सुपरप्रोजेक्ट कहलाता है superyऔर सबमॉड्यूल कहा जाता है subby। (तब मैं जो करने की कोशिश कर रहा हूं उसका एक सरलीकरण है ... मैं वास्तव में संस्करणों के लिए शाखाओं का उपयोग नहीं कर रहा हूं, लेकिन मुझे लगा कि एक प्रश्न के रूप में बाहर रखना आसान होगा।)
मेरी मास्टर ब्रांच के superyपास v1.0git प्रोजेक्ट का टैग है जो subbyएक सबमॉड्यूल के रूप में संदर्भित है। की शाखा ने superyबुलाया one.oneऔर टैग v1.1के बिंदु को इंगित करने के लिए सबमॉड्यूल के संदर्भ को बदल दिया subby।
मैं बिना किसी अड़चन के इन शाखाओं में से प्रत्येक के भीतर काम कर सकता हूं, लेकिन अगर मैं one.oneशाखा से अपडेट के लिए शाखा को अपडेट करने की कोशिश करता हूं तो मुझे masterकुछ संघर्ष मिलते हैं और मैं उन्हें हल करने का तरीका नहीं बताता।
मूल रूप git pull . masterसे subbyशाखा में थोड़ी देर चलने के बाद , ऐसा लगता है कि यह अतिरिक्त सबमॉड्यूल बनाता है।
पुल / मर्ज करने से पहले, मुझे शाखा git submoduleसे वांछित प्रतिक्रिया मिलती है one.one:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
लेकिन खींचने के बाद, जब मैं चलता हूं तो यह अतिरिक्त सबमॉड्यूल्स जोड़ता है git submodule:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
मैं अवांछित उप-संदर्भों को कैसे हटा / अनदेखा कर सकता हूं और अपने संघर्षों और परिवर्तनों को कम कर सकता हूं? या क्या कोई ऐसा पैरामीटर है जिसे मैं अपने मूल के साथ उपयोग कर सकता हूं git pullजो मेरे सबमॉड्यूल्स को अनदेखा करेगा?