Merge Conflict क्या हैं?
मर्ज विरोध तब होता है जब दो शाखाएँ एक प्रतिलिपि के एक ही भाग को प्रतिस्थापित कर देती हैं।
Git तय नहीं कर सकता कि कौन से परिवर्तन रखे जाएं, इसलिए आपको चुनना होगा।
मर्ज पूरा करने से पहले आपको विवाद का समाधान करना होगा।
मर्ज विवाद क्यों होते हैं?
मर्ज विरोध आमतौर पर तब होता है जब आप उन शाखाओं को मर्ज करते हैं जिन्होंने एक ही कॉपी में समान पंक्तियों को बदल दिया है।
सहयोगी परियोजनाओं या दीर्घकालिक शाखाओं पर काम करते समय यह आम बात है।
मर्ज विवादों को कैसे खोजें और हल करें
यदि किसी शाखा को मर्ज करते समय परस्पर विरोधी परिवर्तन होते हैं, तो Git रुक जाता है और फ़ाइलों को विरोध के साथ चिह्नित करता है।
उदाहरण: एक शाखा का विलय करें
git merge feature-branch
यदि कोई विरोध है, तो Git आपको बताएगा कि कौन सी फ़ाइलें प्रभावित हैं।
देखें कि किन फ़ाइलों में विरोध है
देखें कि किन फ़ाइलों पर आपको ध्यान देने की आवश्यकता हैgit statusउपयोग:
उदाहरण: स्थिति जांचें
git status
अंतर देखें
देखें कि संघर्ष को कैसे हल किया जाए, यह तय करने में मदद के लिए क्या बदलाव आया हैgit diffउपयोग:
उदाहरण: मतभेद पहचानें
git diff
परस्पर विरोधी मार्कर संपादित करें
विरोधाभासी फ़ाइल खोलें. आपको इस तरह के हिस्से मिलेंगे:
विरोधाभासी मार्कर
<<<<<<<< सिर यहां आपके परिवर्तन हैं ======= अन्य शाखा परिवर्तन >>>>>>> सुविधा-शाखा
आप जो चाहते हैं उसे रखने के लिए फ़ाइल को संपादित करें, फिर विरोध चिह्न हटा दें (<<<<<<<, =======, >>>>>>>) निकालना।
सही के रूप में चिन्हित करो
फ़ाइल को ठीक करने के बाद, इसे हल के रूप में चिह्नित करें:
उदाहरण: समाधान के रूप में चिह्नित करें
git add filename.txt
विलय समाप्त करें
मर्ज को एक कमिट के साथ समाप्त करें (यदि Git इसे स्वचालित रूप से नहीं करता है):
उदाहरण: मर्ज समाप्त करें
git commit
विलय रद्द करें
यदि आप मर्ज को रोकना और रद्द करना चाहते हैं:
उदाहरण: मर्ज छोड़ें
git merge --abort
सीन मर्ज टूल का उपयोग करें
यदि आप चाहें, तो आप विवादों को हल करने के लिए एक विज़ुअल टूल का उपयोग कर सकते हैं:
उदाहरण: मर्जटूल का प्रयोग करें
git mergetool
किसी पृष्ठ के परिवर्तन चुनें
यदि आप केवल अपने परिवर्तन या केवल अन्य शाखा के परिवर्तन रखना चाहते हैं:
उदाहरण: हमारे परिवर्तन रखें
git checkout --ours filename.txt
उदाहरण: उनके परिवर्तन रखें
git checkout --theirs filename.txt
समस्या निवारण एवं सर्वोत्तम अभ्यास
यदि आप मुसीबत में पड़ जाएं
फिर से शुरू करेंgit merge --abortआइए इसका उपयोग करें
समाधान के रूप में चिह्नित करने से पहले
सभी परस्पर विरोधी मार्करों को हटाना सुनिश्चित करें
यदि आप डिस्प्ले टूल का उपयोग करते हैं
आपgit mergetoolयदि आपको उच्चारित करने का परिणाम पसंद नहीं है, तो आप फ़ाइलों को मैन्युअल रूप से संपादित कर सकते हैं
महत्वपूर्ण नोट
जस्सिफ टीम नोट
विलय संघर्ष सहयोगात्मक विकास का एक स्वाभाविक हिस्सा है। वे गलत नहीं हैं - वे दिखाते हैं कि कई लोग एक ही कोड पर काम कर रहे हैं।
मर्ज विवादों को हल करना एक कौशल है, और अभ्यास के साथ यह तेज़ और अधिक प्रभावी हो जाता है।
त्वरित संदर्भ
कृपया विलय करें
मर्ज शाखा
git merge branch-name
विसंगतियों की जाँच करें
परस्पर विरोधी फ़ाइलें
git status
सही के रूप में चिन्हित करो
फ़ाइल जोड़ें
git add filename
विलय रद्द करें
विलय छोड़ें
git merge --abort