Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

Git निम्न फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट समाधान द्वारा अधिलेखित कर दिए जाएंगे

आप दो शाखाओं पर एक फ़ाइल को संशोधित नहीं कर सकते हैं और उन शाखाओं के बीच फ़ाइल को कमिट या स्टोर किए बिना स्विच कर सकते हैं। ऐसा इसलिए है क्योंकि Git अनिश्चित है कि किन परिवर्तनों को सहेजा जाना चाहिए और किन परिवर्तनों को अधिलेखित किया जाना चाहिए।

यह मार्गदर्शिका "निम्न फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट द्वारा अधिलेखित कर दी जाएगी" त्रुटि और इसका क्या अर्थ है, इस पर चर्चा करती है। हम एक उदाहरण के माध्यम से चलेंगे ताकि आप यह पता लगा सकें कि इस त्रुटि को कैसे ठीक किया जाए।

निम्न फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट द्वारा अधिलेखित कर दिए जाएंगे

गिट संस्करण नियंत्रण आपको विकास की अलग-अलग पंक्तियों को बनाए रखने देता है, जिन्हें शाखाएं कहा जाता है। जब तक आप दो शाखाओं का विलय नहीं करते हैं, तब तक एक शाखा में परिवर्तन दूसरी शाखा में दिखाई नहीं देता है।

जब आप किसी शाखा में नेविगेट करते हैं, तो आप उसके इतिहास में किसी विशेष समय पर रिपॉजिटरी देख सकते हैं और अपने लिए आवश्यक परिवर्तन कर सकते हैं। जब आप तैयार हों तो आपको किए गए परिवर्तनों को प्रतिबद्ध करना चाहिए ताकि गिट आपके प्रोजेक्ट के विकास पर नज़र रखे।

आप दो शाखाओं के बीच स्विच नहीं कर सकते हैं यदि दोनों शाखाओं में एक अप्रतिबद्ध फ़ाइल परिवर्तन होता है। गिट को यह जानने की जरूरत है कि फाइल को सहेजा जाना चाहिए या प्रतिबद्धता का हिस्सा होना चाहिए। यह आपको गलती से कोड को ओवरराइट करने से बचाता है जिसे आप बाद में देखना चाहेंगे।

एक उदाहरण परिदृश्य

हम एक रिपॉजिटरी को क्लोन करने जा रहे हैं जिसमें README.md नामक एक फ़ाइल है:

git clone https://github.com/career-karma-tutorials/ck-git

README.md फ़ाइल की सामग्री इस प्रकार है:

# ck-git

हमारे भंडार की दो शाखाएँ हैं:विकास और मास्टर। हमारी स्थानीय कार्य निर्देशिका में, हम मूल मास्टर शाखा पर README.md फ़ाइल को बदलने जा रहे हैं:

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

# Career Karma Git

हमारी मास्टर शाखा अब हमारे रिमोट रिपोजिटरी से अलग है। हम अपनी विकास शाखा पर स्विच करने जा रहे हैं और इसके रीडमे की सामग्री को यह कहने के लिए बदल देंगे:

# Career Karma [Development]

हम इन आदेशों को निष्पादित करके इस फ़ाइल को विकास शाखा में बदल सकते हैं:

git checkout development
nano README.md

इसके बाद, मास्टर शाखा में वापस जाएँ, शाखा में किए गए परिवर्तनों को प्रतिबद्ध करें, और उन्हें हमारे दूरस्थ रिपॉजिटरी में धकेलें:

git checkout master
git add README.md
git commit -m "docs: Update README"
git push

गिट चेकआउट कमांड हमें मास्टर शाखा में जाने देता है। समीक्षा में, हमारे दूरस्थ भंडार में अब शामिल हैं:

  • विकास शाखा पर एक संशोधित README.md
  • एक मास्टर शाखा जो एक प्रतिबद्धता से आगे है

अब, मास्टर शाखा पर हमारे README.md को फिर से संशोधित करें:

# Tutorials

इसका मतलब है कि दोनों शाखाओं में दूरस्थ मास्टर शाखा के बीच अंतर है। आइए इन परिवर्तनों के साथ अपनी विकास शाखा में स्विच करने का प्रयास करें:

git checkout development

यह आदेश एक त्रुटि संदेश देता है:

error: Your local changes to the following files would be overwritten by checkout:
    README.md
Please commit your changes or stash them before you switch branches.
Aborting

समाधान

चूंकि हमारे विकास और मास्टर शाखाओं में अप्रतिबद्ध परिवर्तन होते हैं, गिट चेकआउट के साथ आगे नहीं बढ़ सकता है। यदि Git आगे बढ़ता है, तो हमने अपने README.md में मास्टर शाखा में जो परिवर्तन किए हैं, वे सहेजे नहीं जाएंगे।

हम इस त्रुटि को दो तरह से ठीक कर सकते हैं। सबसे पहले, हम मास्टर शाखा में परिवर्तन कर सकते हैं:

git add README.md
git commit -m "docs: Add tutorials message to README.md file"
git push
में ट्यूटोरियल मैसेज जोड़ें।

इन आदेशों में, हम स्टेजिंग क्षेत्र में README.md फ़ाइल जोड़ते हैं, स्टेजिंग क्षेत्र से सभी फ़ाइलों को एक कमिट में जोड़ते हैं, और हम अपने परिवर्तन को दूरस्थ रिपॉजिटरी में धकेलते हैं।

Git के पास अब रिकॉर्ड है कि हमारे द्वारा किए गए परिवर्तनों के साथ हमारी README.md फ़ाइल कैसी दिखाई देती है।

वैकल्पिक रूप से, हम अपने परिवर्तनों को बाद के लिए रोक सकते हैं। यह एक अच्छा समाधान है यदि आप अपने परिवर्तनों को बाद में सुलभ बनाना चाहते हैं जब आप अभी तक परिवर्तनों को एक प्रतिबद्धता में जोड़ने के लिए तैयार नहीं हैं। अपने परिवर्तनों को छिपाने के लिए, आप git stash कमांड चला सकते हैं:

git stash save README.md

यह हमारी README.md फाइल को एक स्टैश में सेव कर देगा। जब भी हम इस फ़ाइल को फिर से देखने के लिए तैयार होते हैं, तो हम स्टैश पॉप कमांड का उपयोग करके स्टैश तक पहुँच सकते हैं:

git stash pop

यह कमांड हमारे रिपॉजिटरी में README.md फाइल को रिस्टोर करेगा। "स्टैशिंग" कहने का एक और तरीका है "बाद के लिए बचत।" स्टैश आपके परिवर्तनों की प्रतिबद्धता नहीं बनाते हैं।

उपरोक्त समाधानों में से एक को चलाने के बाद, हम विकास शाखा में सफलतापूर्वक नेविगेट कर सकते हैं:

git checkout development

यह आदेश हमारी शाखा को "विकास" में बदल देता है और हमें हमारे टर्मिनल में इस परिवर्तन के बारे में सूचित करता है:

Switched to branch 'development'

हमने समस्या का समाधान कर लिया है।

निष्कर्ष

गिट "निम्न फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट द्वारा अधिलेखित हो जाएंगे" त्रुटि तब होती है जब आप उन परिवर्तनों को किए या छिपाने के बिना दो शाखाओं में परिवर्तन करते हैं और शाखाओं के बीच नेविगेट करने का प्रयास करते हैं।

आप इस समस्या को या तो बाद के लिए अपने परिवर्तनों को छिपा कर रख सकते हैं या उन्हें एक कमिट में जोड़ सकते हैं।

अब आपके पास एक पेशेवर की तरह इस त्रुटि को ठीक करने के लिए आवश्यक ज्ञान है!


  1. फाइल ऐप के साथ आईओएस में अपनी फाइलों को कैसे प्रबंधित करें

    IOS (और iPadOS) पर सबसे कम आंका जाने वाला ऐप कोई और नहीं बल्कि फाइल्स ऐप है। सबसे पहले, यह एक बहुत ही सरल फ़ाइल प्रबंधक की तरह लग सकता है जो आपको अपने iPhone या iPad पर सिस्टम फ़ाइलों में गहराई तक जाने नहीं देता है। हालांकि, हम गारंटी देते हैं कि यह ऐप क्या कर सकता है, इससे आपको आश्चर्य होगा, खासकर

  1. Spotify पर अपना संगीत और स्थानीय फ़ाइलें कैसे अपलोड करें

    Spotify में ट्रैक की एक विशाल लाइब्रेरी है जो अधिकांश संगीत प्रशंसकों की जरूरतों को आसानी से पूरा कर सकती है। लेकिन अगर आपका स्वाद अधिकांश लोगों की तुलना में थोड़ा अधिक उदार होता है, तो आपके द्वारा पसंद किए जाने वाले अस्पष्ट ट्रैक खोजने की गारंटी प्लेटफॉर्म पर नहीं हो सकती है। चिंता न करें, हालांकि,

  1. आपके मैक पर Android फ़ाइलें स्थानांतरित नहीं कर सकते? यह रहा फिक्स

    अपने Android उपकरण को Mac से कनेक्ट करने में विफल? अपना डेटा ट्रांसफर नहीं कर सकते? Android फ़ाइल स्थानांतरण मैक पर काम नहीं कर रहा है? ठीक है, अगर आप लगातार खुद से ये सवाल पूछते हैं तो आप अकेले नहीं हैं! यह कई मैक उपयोगकर्ताओं द्वारा सामना की जाने वाली एक सामान्य समस्या है। डिवाइस और सिस्टम के बीच