मेरे पास एक git सुपरप्रोजेक्ट है जो कई सबमॉड्यूल्स को संदर्भित करता है और मैं अपने प्रोजेक्ट के बाकी सदस्यों के लिए वर्कफ़्लो को लॉक करने की कोशिश कर रहा हूं।
इस प्रश्न के लिए, मान लीजिए कि मेरा सुपरप्रोजेक्ट कहलाता है supery
और सबमॉड्यूल कहा जाता है subby
। (तब मैं जो करने की कोशिश कर रहा हूं उसका एक सरलीकरण है ... मैं वास्तव में संस्करणों के लिए शाखाओं का उपयोग नहीं कर रहा हूं, लेकिन मुझे लगा कि एक प्रश्न के रूप में बाहर रखना आसान होगा।)
मेरी मास्टर ब्रांच के supery
पास v1.0
git प्रोजेक्ट का टैग है जो 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
जो मेरे सबमॉड्यूल्स को अनदेखा करेगा?