त्रुटि संदेश "निम्न फ़ाइलों में आपके स्थानीय परिवर्तन मर्ज द्वारा अधिलेखित कर दिए जाएंगे " गिट संस्करण नियंत्रण तंत्र में होता है। यह त्रुटि तब होती है जब आपने एक फ़ाइल को संशोधित किया है जिसमें दूरस्थ रिपॉजिटरी में भी संशोधन हैं।
यह त्रुटि संदेश टाला जाता है यदि कोई अनकमिटेड फाइल नहीं है जिसमें रिमोट रिपोजिटरी में संशोधन भी हैं। इस संदेश का अनुभव करते समय, अपने टीम के अन्य सदस्यों से परामर्श करना और उनकी राय पूछना सबसे अच्छा है। आप अपने स्थानीय परिवर्तनों को मर्ज करना चाहते हैं या संस्करण को रिपॉजिटरी में रखना चाहते हैं, सभी को बोर्ड पर रखना सबसे अच्छा है।
रिपॉजिटरी क्या हैं? गिट में पुश एंड पुल क्या हैं?
रिपोजिटरी कोड के लिए एक प्रकार का भंडारण है जिसे लगातार संशोधित किया जाता है और टीम के सदस्यों द्वारा गिटहब संस्करण नियंत्रण तंत्र के माध्यम से प्राप्त किया जाता है। एक 'खींचें' इसका मतलब है कि आप अपने स्थानीय भंडारण/आईडीई (एकीकृत विकास पर्यावरण) जैसे कि पिचर्म इत्यादि पर भंडार के नवीनतम संस्करण को खींच रहे हैं।
पुल के बाद, आप कोड में परिवर्तन करते हैं या अधिक सुविधाएँ जोड़ते हैं। एक बार कर लेने के बाद, आप 'पुश' रिपॉजिटरी पर कोड इसलिए परिवर्तन सहेजे जाते हैं और परिवर्धन किए जाते हैं। कोड अन्य लोगों के लिए भी सुलभ हो जाता है।
यदि आप जीथब संस्करण नियंत्रण के लिए नए हैं, तो यह अनुशंसा की जाती है कि आप पहले सभी मूल बातें पढ़ लें। इस लेख में, हम मानते हैं कि आपके पास पहले से ही बुनियादी ज्ञान है और सभी इन और आउट को जानते हैं।
'निम्न फ़ाइलों में आपके स्थानीय परिवर्तन मर्ज द्वारा अधिलेखित हो जाएंगे' को कैसे ठीक करें?
इस त्रुटि संदेश का समाधान इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं। आप अपने स्थानीय परिवर्तनों को त्याग सकते हैं और उन्हें भंडार में खींच सकते हैं या आप अपने स्थानीय परिवर्तनों को एक छिपाने की जगह में सहेज सकते हैं और संस्करण को भंडार से खींच सकते हैं। यह सब आपकी पसंद पर निर्भर करता है।
इसलिए, हम अनुशंसा करते हैं कि आप अपने टीम के सदस्यों से परामर्श करें और सुनिश्चित करें कि आप सभी एक ही पृष्ठ पर हैं। आगे बढ़ने से पहले। यदि आप गलत करते हैं या गलत संस्करण को आगे बढ़ाते हैं, तो यह पूरी टीम को प्रभावित कर सकता है।
विधि 1:स्थानीय परिवर्तनों को अधिलेखित करने के लिए दबाव डालना
यदि आप स्थानीय रूप से किए गए परिवर्तनों की परवाह नहीं करते हैं और रिपॉजिटरी से कोड प्राप्त करना चाहते हैं, आप एक पुल को मजबूर कर सकते हैं। यह आपके कंप्यूटर पर किए गए सभी स्थानीय परिवर्तनों को अधिलेखित कर देगा, रिपॉजिटरी में संस्करण की एक डुप्लिकेट कॉपी दिखाई देगी।
अपने IDE में निम्न कमांड निष्पादित करें:
git reset -- hard git pull
यह आपके सभी स्थानीय परिवर्तनों को तुरंत नष्ट कर देगा इसलिए सुनिश्चित करें कि आप जानते हैं कि आप क्या कर रहे हैं और आपको अपने स्थानीय परिवर्तनों की आवश्यकता नहीं है।
विधि 2:दोनों परिवर्तनों को ध्यान में रखते हुए (स्थानीय और रेपो से)
यदि आप दोनों परिवर्तन (स्थानीय रूप से किए गए परिवर्तन और रिपॉजिटरी में मौजूद परिवर्तन) रखना चाहते हैं, तो आप अपने परिवर्तन जोड़ और प्रतिबद्ध कर सकते हैं। जब आप खींचते हैं, तो स्पष्ट रूप से एक मर्ज संघर्ष होगा। यहां आप कोड के दो टुकड़ों की तुलना करने के लिए अपने IDE (जैसे Difftool और mergetool) में टूल का उपयोग कर सकते हैं और यह निर्धारित कर सकते हैं कि कौन से परिवर्तन रखना है और कौन से हटाना है। यह है बीच का रास्ता; जब तक आप उन्हें मैन्युअल रूप से हटा नहीं देते, तब तक कोई भी परिवर्तन नहीं खोएगा।
git add $the_file_under_error git commit git pull
जब आप एक मर्ज विरोध प्राप्त करते हैं, तो उन विरोध समाधान टूल को पॉप करें और लाइन दर लाइन चेक करें।
विधि 3:दोनों परिवर्तनों को ध्यान में रखते हुए लेकिन प्रतिबद्ध नहीं होना
यह स्थिति समय-समय पर होती है जहां डेवलपर्स प्रतिबद्ध होने के लिए तैयार नहीं होते हैं क्योंकि कुछ आंशिक रूप से टूटा हुआ कोड होता है जिसे आप डिबग कर रहे होते हैं। यहां हम परिवर्तनों को सुरक्षित रूप से छिपा सकते हैं, संस्करण को रिपॉजिटरी से खींच सकते हैं, और फिर अपना कोड हटा सकते हैं।
git stash save --keep-index
या
git stash
git pull git stash pop
यदि आपके द्वारा छिपाने की जगह को पॉप करने के बाद कुछ विवाद हैं, तो आपको उन्हें सामान्य तरीके से हल करना चाहिए। आप कमांड का उपयोग भी कर सकते हैं:
git stash apply
पॉप के बजाय यदि आप विरोधों के कारण संचित कोड को खोने के लिए तैयार नहीं हैं।
यदि मर्ज आपके लिए व्यवहार्य विकल्प नहीं लगता है, तो रिबेस करने पर विचार करें। रिबेसिंग एक नई बेस कमिट के लिए कमिट के अनुक्रम को स्थानांतरित करने या संयोजित करने की प्रक्रिया है। रिबेसिंग के मामले में, कोड को इसमें बदलें:
git stash git pull --rebase origin master git stash pop
विधि 4:अपने कोड के 'विशिष्ट' भागों में परिवर्तन करें
यदि आप कोड के विशिष्ट भागों में परिवर्तन करना चाहते हैं और सब कुछ बदलना नहीं चाहते हैं, तो आप प्रतिबद्ध कर सकते हैं वह सब कुछ जिसे आप अधिलेखित नहीं करना चाहते हैं और फिर विधि 3 का पालन करें। आप निम्न आदेश का उपयोग उन परिवर्तनों के लिए कर सकते हैं जिन्हें आप भंडार में मौजूद संस्करण से अधिलेखित करना चाहते हैं:
git checkout path/to/file/to/revert
या
git checkout HEAD^ path/to/file/to/revert
साथ ही, आपको यह सुनिश्चित करने की आवश्यकता है कि फ़ाइल का मंचन निम्न के द्वारा नहीं किया गया है:
git reset HEAD path/to/file/to/revert
फिर पुल कमांड के साथ आगे बढ़ें:
git pull
इसके बाद यह संस्करण को रिपॉजिटरी से लाने का प्रयास करेगा।