मेरे पास एक गिट सुपरप्रोजेक्ट है जो कई सबोड्यूल्यूल का संदर्भ देता है और मैं अपने प्रोजेक्ट सदस्यों के बाकी हिस्सों के लिए वर्कफ़्लो को लॉक करने का प्रयास कर रहा हूं।मैं गिट submodules के साथ संघर्ष कैसे प्रबंधित करूं?
इस प्रश्न के लिए, मान लें कि मेरे सुपरप्रोजेक्ट को supery
कहा जाता है और सबमिशन को subby
कहा जाता है। (फिर मैं जो करने की कोशिश कर रहा हूं उसका सरलीकरण है ... मैं वास्तव में संस्करणों के लिए शाखाओं का उपयोग नहीं कर रहा हूं, लेकिन मैंने सोचा कि यह एक प्रश्न के रूप में बाहर रखना सबसे आसान होगा।)
मेरी मास्टर शाखा supery
में गिट प्रोजेक्ट subby
का एक सबमिशन के रूप में संदर्भित v1.0
टैग है। supery
की शाखा one.one
कहलाती है और subby
के टैग v1.1
पर इंगित करने के लिए सबमिशन के संदर्भ को बदल दिया गया है।
मैं मैं उन्हें कैसे हल करने के लिए नहीं है बिना किसी अवरोध के इन शाखाओं में से प्रत्येक के भीतर काम कर सकते हैं, लेकिन मैं कुछ मतभेद प्राप्त अगर मैं master
शाखा से परिवर्तन के साथ one.one
शाखा अद्यतन करने के लिए कोशिश करते हैं और।
मूल रूप से git pull . master
चलाने के बाद subby
शाखा में, ऐसा लगता है कि यह अतिरिक्त सबोड्यूल बनाता है।
पुल/मर्ज से पहले, मैं one.one
शाखा से git submodule
से वांछित प्रतिक्रिया मिल:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
लेकिन पुल के बाद, यह अतिरिक्त submodules जब मैं चलाने कहते हैं 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
के साथ कर सकता हूं जो मेरे सबोड्यूल्यूल को अनदेखा कर देगा?
प्रश्न पर कुछ प्रकाश डालने के लिए धन्यवाद । यह अब मुझे समझ में आता है और रीसेट कमांड ऊपर मेरी स्थिति के लिए पूरी तरह से काम करता है। लेकिन मास्टर शाखा से सबमिशन रेफरी को स्वीकार करने के लिए आदेश क्या होंगे और वर्तमान शाखा के सबमिशन को रेफरी फेंक दें? मुझे पता है कि सामान्य संघर्षों को कैसे संभालना है, लेकिन वेब को खराब करने के तीन दिनों के बाद, मुझे आरएम-आर के अलावा एक कोड उदाहरण नहीं मिल रहा है। और मुझे लगता है कि उदाहरणों के लिए कोई कारण मौजूद नहीं है; सबमिशन अब तक सुपरप्रोजेक्ट से सारणित है कि आपको हर संक्रमण का प्रबंधन करना होगा। – Tyler
आखिरकार! एक जवाब! मैंने हमारे द्वारा जोड़ा था: ../ मोनो 'सेसिल' 'गिट स्टेटस 'में, लेकिन' गिट एड 'और' गिट आरएम '' मोनो के साथ असफल रहा। सेसिल: मर्ज की ज़रूरत है, पथस्पेक' मोनो.सीसिल/'किसी से मेल नहीं खाती फाइलें 'क्योंकि यह सिर्फ एक खाली फ़ोल्डर था और गिट केवल फाइलों को संभालती है। 'गिट चेकआउट' ने मुझे 'मोनो' सेसिल दिया: मर्ज की जरूरत है, त्रुटि: आपको अपनी वर्तमान इंडेक्स को पहले हल करने की जरूरत है ',' गिट सबमिशन अपडेट 'ने' अनमोल सबमिशन को छोड़कर मोनो.सेसिल 'और' गिट चेकआउट मास्टर मोनो। सेसिल 'फाइनली ठीक कर दिया। मूल समस्या: 'गिट स्थिति' सुझाव गलत है, इसलिए शाखा चुनें और फ़ोल्डर की प्रतिलिपि 'चेकआउट' के साथ लें! – IBBoard
@ आईबीबार्ड के आदेश ने मुझे इस स्थिति में मदद की - मैंने 'गिट चेकआउट --ours SUBMOD' और' git add SUBMOD 'और अन्य कोशिश की, लेकिन आखिर में' गिट चेकआउट मास्टर सुबमोड 'ने संघर्ष को ठीक किया। यह टिप्पणी शायद एक उत्तर हो, एक टिप्पणी नहीं ... :) –