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

Git: फोर्स पुल (Force Pull) कैसे करें

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

इस गाइड में, हम एक उदाहरण के संदर्भ में चर्चा करते हैं कि Git रिपॉजिटरी की सामग्री को फोर्स पुल कैसे करें। हम git pull और fetch कमांड के बारे में बात करेंगे, और फोर्स पुल के लिए reset विकल्प का उपयोग कैसे करें।

पुलिंग (Pulling) क्या है?

Git पुल ऑपरेशन एक रिमोट रिपॉजिटरी से सभी मेटाडेटा और फ़ाइलों को डाउनलोड करता है और प्राप्त डेटा के आधार पर स्थानीय रिपॉजिटरी को अपडेट करता है।

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

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

आप रिपॉजिटरी को पुल नहीं कर सकते यदि आपके स्थानीय मशीन पर अनसेव्ड परिवर्तन हैं जो पुल द्वारा ओवरराइट हो जाएंगे।

Git: फोर्स पुल

हम ck-git नामक एक रिपॉजिटरी पर काम कर रहे हैं, जिसमें एक वेब प्रोजेक्ट का कोड है। एक सहयोगी ने अभी README.md नामक फ़ाइल को अपडेट किया है। हमने अपनी मशीन पर उस फ़ाइल को अपडेट किया है और अपने परिवर्तनों को रिपॉजिटरी में पुश नहीं किया है।

आइए देखते हैं कि जब हम अपने परिवर्तनों को पुल करने का प्रयास करते हैं तो क्या होता है:

git pull

यह कमांड एक त्रुटि लौटाती है:

error: Your local changes to the following files would be overwritten by merge: README.md Please, commit your changes or stash them before you can merge.

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

हम git fetch कमांड का उपयोग करके किए गए किसी भी परिवर्तन को लाकर और फिर अपने रिपॉजिटरी को उन परिवर्तनों को दिखाने के लिए रीसेट करके Git को परिवर्तनों को खींचने के लिए मजबूर कर सकते हैं। आइए git fetch कमांड का उपयोग करके परिवर्तनों को लाकर शुरू करें:

git fetch --all

यह कमांड हमारे रिमोट रिपॉजिटरी में किए गए परिवर्तनों के लिए सभी मेटाडेटा को पुनर्प्राप्त करता है। अगला, हम अपनी वर्तमान ब्रांच का बैकअप लेने जा रहे हैं। हम यह सुनिश्चित करने के लिए ऐसा करते हैं कि हमारा काम न खो जाए जब हमारा कोड ओवरराइट हो जाए।

हम git branch कमांड का उपयोग करके अपनी ब्रांच का बैकअप ले सकते हैं:

git branch backup

यह कमांड "backup" नामक एक नई ब्रांच बनाता है। अब जब हमारी बैकअप ब्रांच मौजूद है, तो हम अपने रिपॉजिटरी को अपने रिमोट रिपॉजिटरी की सामग्री दिखाने के लिए रीसेट कर सकते हैं।

हम अपने रिपॉजिटरी को अपडेट करने के लिए git reset कमांड का उपयोग करने जा रहे हैं:

git reset --hard origin/master

--hard विकल्प रिमोट रिपॉजिटरी से सभी फ़ाइलों को डाउनलोड करता है और उन्हें आपके प्रोजेक्ट की स्थानीय वर्किंग कॉपी में जोड़ता है। यह आपके द्वारा किए गए किसी भी परिवर्तन को ओवरराइट कर देगा।

origin/master कथन उस ब्रांच को संदर्भित करता है जिसे हम पुनर्प्राप्त कर रहे हैं। हम अपने "origin" रिमोट रिपॉजिटरी से "master" ब्रांच की सामग्री डाउनलोड कर रहे हैं।

यदि आप किसी भिन्न ब्रांच या रिमोट नाम वाले रिपॉजिटरी के साथ काम कर रहे हैं, तो आप इस सूत्र का उपयोग करके मार्गदर्शन कर सकते हैं कि रीसेट कमांड का उपयोग कैसे करें:

git reset --hard <remote>/<branch>

git reset कमांड हमारे रिपॉजिटरी को हमारे द्वारा लाए गए सबसे हालिया कमिट पर रीसेट करता है।

अनकमिटेड परिवर्तनों को सहेजना

आप git stash कमांड का उपयोग करके अपने द्वारा किए गए अनकमिटेड परिवर्तनों को सहेज सकते हैं। यह कमांड आपको अपने कोड को बाद के लिए "स्टैश" करने देता है। आइए अपने कोड का एक स्टैश बनाएं:

git stash

हमारे रिपॉजिटरी में किए गए सभी परिवर्तन स्टैश में सहेजे जाएंगे। जब हम उन परिवर्तनों के साथ फिर से काम करने के लिए तैयार हों, तो हम अपने स्टैश को "पॉप" कर सकते हैं:

git stash pop

आप हमारे git stash ट्यूटोरियल में git stash के साथ सहेजने के बारे में अधिक पढ़ सकते हैं।

निष्कर्ष

आप Git रिपॉजिटरी को रिमोट रिपॉजिटरी से सामग्री खींचने के लिए मजबूर कर सकते हैं। ऐसा करने के लिए, आपको रिपॉजिटरी की सामग्री को लाने की आवश्यकता है। एक बार जब आप रिपॉजिटरी को ला लेते हैं, तो आप अपने परिवर्तनों को अपने रिमोट रिपॉजिटरी पर उस ब्रांच पर रीसेट कर सकते हैं जिसे आप अपने कोडबेस को उपयोग करना चाहते हैं।

अब आपके पास Git पुल ऑपरेशन को प्रो की तरह फोर्स करने का ज्ञान है!

  1. GitHub पुल रिक्वेस्ट में स्क्रीनशॉट और एनिमेशन कैसे जोड़ें GitHub पुल रिक्वेस्ट में स्क्रीनशॉट और एनिमेशन कैसे जोड़ें

    GitHub प्रोग्रामर अक्सर अपने रिपॉजिटरी पुल रिक्वेस्ट में स्क्रीनशॉट या एनिमेटेड GIF जोड़ते हैं। ये तकनीकें निश्चित रूप से किसी को सादे टेक्स्ट की कई लाइनें पढ़ने के लिए मजबूर करने से अधिक आकर्षक हैं। स्टैटिक स्क्रीनशॉट जोड़ना सहायक होता है यदि आप दृश्य परिवर्तन या तस्वीरें इंलाइन सम्मिलित करना चाहते

  1. Git और GitHub के साथ शुरुआत कैसे करें Git और GitHub के साथ शुरुआत कैसे करें

    GitHub वर्तमान में ओपन-सोर्स प्रोजेक्ट्स का दुनिया का सबसे बड़ा होस्ट है। GitHub पेज के कई लोकप्रिय उदाहरण हैं जिनमें Atom टेक्स्ट एडिटर, Google द्वारा TensorFlow और Facebook द्वारा React शामिल हैं। यह Big Data, Artificial Intelligence या Internet of Things पर उन्नत परियोजनाओं को रखने के लिए सबसे अच

  1.  Fatal: Origin does not appear to be a Git Repository  त्रुटि कैसे ठीक करें 'Fatal: Origin does not appear to be a Git Repository' त्रुटि कैसे ठीक करें

    Git एक वितरित संस्करण नियंत्रण प्रणाली है जिसका उपयोग मुख्य रूप से सॉफ़्टवेयर विकास के दौरान सोर्स कोड में परिवर्तनों को ट्रैक करने के लिए किया जाता है। GitHub, Git का उपयोग करके संस्करण नियंत्रण के लिए एक ऑनलाइन होस्टिंग सेवा है। दोनों सेवाओं का सॉफ़्टवेयर विकास में बड़े पैमाने पर उपयोग किया जाता ह