त्रुटि “आपको पहले अपनी वर्तमान अनुक्रमणिका को हल करने की आवश्यकता है " गिट में होता है और इसका मतलब है कि एक मर्ज संघर्ष है और जब तक आप संघर्ष को हल नहीं करते, आपको किसी अन्य शाखा में चेकआउट करने की अनुमति नहीं दी जाएगी। यह त्रुटि संदेश यह भी दर्शाता है कि मर्ज विफल हो गया है या फ़ाइलों के साथ विरोध है।
ये सभी फ़ाइलें, मर्ज और विरोध क्या हैं? यदि आप Git का उपयोग करने में शुरुआत कर रहे हैं तो ये शर्तें आपके लिए अज्ञात होंगी। Git एक वर्जन कंट्रोल प्लेटफॉर्म है जो कई लोगों को फाइलों पर एक साथ काम करने और कोड की अपनी स्थानीय कॉपी को क्लाउड में स्टोर करने की अनुमति देता है। इस तरह यदि आप कुछ डाउनलोड किए गए (या पहले से ही पुश किए गए) कोड को बदलते हैं और उसे फिर से क्लाउड पर धकेलते हैं, तो आपकी स्थानीय कॉपी द्वारा क्लाउड में परिवर्तन अधिलेखित कर दिए जाएंगे।
गिट में शाखाओं की अवधारणा है। इसमें से एक मास्टर शाखा और कई अन्य शाखाएँ निकलती हैं। यह त्रुटि विशेष रूप से तब होती है जब आप एक शाखा से दूसरी शाखा में स्विच कर रहे होते हैं (चेकआउट का उपयोग करके) और वर्तमान शाखा की फाइलों में विरोध होता है। यदि उनका समाधान नहीं किया जाता है, तो आप शाखाएँ नहीं बदल सकेंगे।
Git त्रुटि का कारण क्या है:आपको पहले अपनी वर्तमान अनुक्रमणिका को हल करने की आवश्यकता है?
जैसा कि पहले उल्लेख किया गया है, इस त्रुटि के कारण काफी सीमित हैं। आप इस त्रुटि का अनुभव करेंगे क्योंकि:
- एक विलय विफल और अन्य कार्यों के साथ आगे बढ़ने से पहले आपको मर्ज विरोध का समाधान करना होगा।
- संघर्ष हैं आपकी वर्तमान (या लक्षित शाखा) की फाइलों में और इन विरोधों के कारण, आप किसी शाखा या पुश कोड की जांच नहीं कर पाएंगे।
समाधान के साथ आगे बढ़ने से पहले, सुनिश्चित करें कि आपके पास उचित संस्करण नियंत्रण . है और यह बुद्धिमानी है कि आप विरोध का समाधान करने से पहले टीम के अन्य सदस्यों को कोड बदलने से रोकें।
समाधान 1:मर्ज विवाद का समाधान
यदि आपका मर्ज स्वचालित रूप से Git द्वारा हल नहीं किया जाता है, तो यह इंडेक्स और वर्किंग ट्री को एक विशेष स्थिति में छोड़ देता है जो आपको मर्ज को हल करने के लिए आवश्यक सभी जानकारी देने में मदद करता है। जिन फ़ाइलों में विरोध है उन्हें विशेष रूप से अनुक्रमणिका में चिह्नित किया जाएगा और जब तक आप समस्या का समाधान नहीं करते और अनुक्रमणिका को अद्यतन नहीं करते, तब तक आपको यह त्रुटि संदेश प्राप्त होता रहेगा।
- सभी विवादों का समाधान करें . उन फ़ाइलों की जाँच करें जिनमें विरोध है क्योंकि उन्हें अनुक्रमणिका द्वारा चिह्नित किया जाएगा और तदनुसार उनमें परिवर्तन करें।
- आपके द्वारा सभी मौजूदा विरोधों का समाधान करने के बाद, जोड़ें फ़ाइल और फिर प्रतिबद्ध ।
एक उदाहरण है:
$ git add file.txt $ git commit
आप कमिट करते समय अपनी व्यक्तिगत टिप्पणी जोड़ सकते हैं। एक उदाहरण है:
$ git commit –m “This is Appuals Git repository”
- संघर्ष का समाधान करने के बाद, अपनी मौजूदा शाखा से बाहर निकलने का प्रयास करें और देखें कि क्या समस्या ठीक हो गई है।
समाधान 2:अपना मर्ज पूर्ववत करना
ऐसे कई मामले हैं जहां आप शाखाओं को मर्ज करते हैं और गड़बड़ करते हैं। सभी संघर्षों और भ्रमों के कारण, परियोजना अब एक गड़बड़ है और आपकी टीम के सदस्य इसके लिए आप पर आरोप लगा रहे हैं। इस मामले में, आपको पिछली कमिट (मर्ज कमिट) को वापस करना होगा . यह मर्ज को पूरी तरह से पूर्ववत कर देगा और पूरे प्रोजेक्ट को उस स्थिति में वापस लाएगा जब आपने कोई मर्ज नहीं किया था। यह एक जीवन रक्षक हो सकता है यदि आपने मरम्मत से परे चीजों को गड़बड़ कर दिया है।
मर्ज को पूर्ववत करने . के लिए , निम्न टाइप करें:
$ git reset -–merge
उपरोक्त कमांड इंडेक्स को रीसेट करेगा और वर्किंग ट्री में फाइलों को अपडेट करेगा जो 'प्रतिबद्ध' और 'हेड' के बीच भिन्न हैं। हालांकि, यह उन फाइलों को रखेगा जो इंडेक्स और वर्किंग ट्री के बीच भिन्न हैं।
आप सिर को पूर्ववत करने . का भी प्रयास कर सकते हैं निम्न आदेश का उपयोग करके:
$ git revert HEAD
यदि आप सटीक मर्ज कमिट निर्दिष्ट करना चाहते हैं जिसे आप वापस करना चाहते हैं, तो आप उसी रिवर्ट कमांड का उपयोग कर सकते हैं लेकिन अतिरिक्त पैरामीटर निर्दिष्ट कर सकते हैं। मर्ज कमिट के SHA1 हैश का उपयोग किया जाएगा। -m के बाद 1 इंगित करता है कि हम मर्ज के मूल पक्ष को रखना चाहते हैं (जिस शाखा में हम विलय कर रहे हैं)। इस वापसी का नतीजा यह है कि गिट एक नई प्रतिबद्धता बनाएगा जो विलय से परिवर्तनों को वापस ले लेगा।
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>