Git Pull कमांड क्या है?
"कोड खींचना" एक रिमोट रिपॉजिटरी से सामग्री डाउनलोड करने और इसे अपने कंप्यूटर पर सहेजने की प्रक्रिया का वर्णन करता है।
Git में कोड खींचने के लिए, आप git pull कमांड का उपयोग कर सकते हैं। git pull कमांड एक सहायक कमांड है जो दो अन्य कमांड निष्पादित करता है: git fetch और git merge।
आइए जानें कि git pull कमांड कैसे काम करता है।
सबसे पहले, जब आप git pull चलाते हैं, तो आप जिस रिमोट रिपॉजिटरी को खींच रहे हैं उसे डाउनलोड किया जाएगा। रिपॉजिटरी से कोड की एक कॉपी और रिपॉजिटरी से जुड़े Git कमिट्स आपकी मशीन पर सहेजे जाएंगे।
इसके बाद, एक Git मर्ज ऑपरेशन निष्पादित किया जाता है। यह ऑपरेशन आपके स्थानीय मशीन पर कोड को नए-प्राप्त कोड के साथ मर्ज करता है, कोडबेस का एक अंतिम संस्करण बनाता है। यह संस्करण उस संस्करण के बराबर होगा जिसे आपने रिमोट ब्रांच से प्राप्त किया है।
Git Pull कमांड
git pull कमांड एक रिमोट रिपॉजिटरी को पुनः प्राप्त करता है और इसके कोड को रिपॉजिटरी के आपके स्थानीय संस्करण में डाउनलोड करता है। आइए कमांड पर एक नज़र डालें:
git pull <remote>
"remote" पैरामीटर उस रिमोट रिपॉजिटरी को संदर्भित करता है जिसे आप अपनी स्थानीय मशीन पर खींचना चाहते हैं। जब आप इस कमांड को चलाते हैं, तो रिमोट रिपॉजिटरी को पुनः प्राप्त किया जाएगा फिर आपके रिपॉजिटरी की स्थानीय कॉपी में मर्ज किया जाएगा।
git pull कमांड अनट्रैक्ड फ़ाइलों को प्रभावित नहीं करता है। आपको केवल उन फ़ाइलों पर किए गए परिवर्तन प्राप्त होंगे जिन्हें Git द्वारा ट्रैक किया जा रहा है। ये परिवर्तन आपके स्थानीय वर्किंग ट्री में सहेजे जाएंगे।
git pull origin
मान लीजिए हम अपनी "origin" रिपॉजिटरी की सामग्री को पुनः प्राप्त करना चाहते हैं। यह रिपॉजिटरी के साथ उपयोग किया जाने वाला डिफ़ॉल्ट "remote" मान है। हम origin master ब्रांच को खींचकर ऐसा कर सकते हैं:
git pull origin/master
यह कमांड वापस लौटाता है:
From https://github.com/jamesgallagher432/demo-repository b53b22d..a7d8dc2 master -> origin/master Updating b53b22d..a7d8dc2 Fast-forward README.md | 2 ++ 1 file changed, 2 insertions(+)
पहले, कमांड ने उस रिमोट रिपॉजिटरी को पुनः प्राप्त किया जिसके साथ हम काम कर रहे हैं। फिर, पहचाने गए परिवर्तनों को हमारे कोड की स्थानीय कॉपी में मर्ज किया जाता है।
हमारे रिपॉजिटरी में README.md फ़ाइल हमारे स्थानीय मशीन पर एक से अलग थी। जब हमने git pull कमांड चलाया, तो परिवर्तनों की पहचान की गई और हमारे स्थानीय मशीन में मर्ज कर दिया गया।
अब जब हमने git pull कमांड चला लिया है, तो हमारी स्थानीय मशीन वही कोड स्टोर करती है जो हमारे रिमोट रिपॉजिटरी में है। इसका मतलब है कि, जब हम अपने कोड में परिवर्तन करते हैं, तो हम जानते हैं कि वे रिपॉजिटरी के नवीनतम संस्करण के साथ संगत होंगे। जब रिमोट रिपॉजिटरी में नए कमिट पुश किए जाते हैं, तो हम रिपॉजिटरी का अद्यतन संस्करण प्राप्त करने के लिए फिर से git pull का उपयोग कर सकते हैं।
हम git log कमांड चलाकर जांच सकते हैं कि हमारी फ़ाइलें अपडेट की गई हैं। यह कमांड हमें रिपॉजिटरी में किए गए सभी कमिट्स दिखाता है।
रिपॉजिटरी से रिमोट ब्रांच खींचें
मान लीजिए आप एक विशिष्ट ब्रांच से कोड खींचना चाहते हैं और इसे अपनी स्थानीय मशीन पर सहेजना चाहते हैं। आप "dev-v0.9" नामक ब्रांच पर कोड के साथ काम करने जा रहे हैं। आप केवल उस ब्रांच के लिए कोड खींचना चाहते हैं।
आप git checkout कमांड निष्पादित करके, उसके बाद git pull कमांड द्वारा ऐसा कर सकते हैं। इस ऑपरेशन के लिए सिंटैक्स यहां दिया गया है:
git checkout <branch name> git pull <remote>
हमारे उदाहरण के लिए, हम निम्नलिखित कमांड चलाएंगे:
git checkout dev-v0.9 git pull origin
जब हम git checkout कमांड चलाते हैं, तो हम "dev-v0.9" ब्रांच पर चले जाते हैं। git pull origin कमांड "dev-v0.9" ब्रांच पर कोड की एक कॉपी पुनः प्राप्त करता है और सहेजता है। एक बार कोड डाउनलोड हो जाने के बाद, एक git मर्ज ऑपरेशन निष्पादित किया जाएगा। यह हमारे स्थानीय रिपॉजिटरी को अपडेट करेगा ताकि यह हमारे रिमोट के समान कोड दिखाए।
Git Force Pull
आप पुल ऑपरेशन को फोर्स कर सकते हैं। फोर्सिंग git pull आम है यदि आप एक अनट्रैक्ड फ़ाइल त्रुटि का सामना करते हैं जिसे आप त्यागना चाहते हैं।
पुल ऑपरेशन को फोर्स करने से पहले, आपको यह सुनिश्चित करना चाहिए कि आप किसी भी स्थानीय परिवर्तन को खोने में सहज हैं। फोर्सिंग पुल आपके सभी स्थानीय परिवर्तनों को ओवरराइट कर देगा।
पुल को फोर्स करने के लिए, पहले उस कमिट के लिए मेटाडेटा प्राप्त करें जिसे आप अपनी स्थानीय मशीन पर सहेजना चाहते हैं:
git fetch --all
अगला, आपको अपनी वर्तमान ब्रांच का बैकअप लेना चाहिए। अपनी वर्तमान ब्रांच का बैकअप लेने से यह सुनिश्चित होगा कि आप उन परिवर्तनों को नहीं खोते हैं जिन पर आप बाद में वापस आना चाह सकते हैं:
git branch -b backup
अब जब हमारे पास अपनी ब्रांच का बैकअप है, तो हम अपने परिवर्तनों को खींच सकते हैं। हम रिसेट कमांड का उपयोग करके ऐसा कर सकते हैं:
git reset --hard origin/master
आपको origin/master को अपने प्रोजेक्ट से जुड़े origin और ब्रांच नामों से बदलना चाहिए। Origin रिपॉजिटरी को दर्शाता है। Master उस ब्रांच का नाम है जिससे हम अपना कोड प्राप्त कर रहे हैं।
Git फोर्स पुल पर अधिक पढ़ने के लिए हमारे git force pull गाइड को पढ़ें।
Git Pull बनाम Git Fetch
git fetch और git pull दोनों रिमोट रिपॉजिटरी की सामग्री को पुनः प्राप्त करते हैं। कुछ डेवलपर्स git pull और git fetch कमांड के बीच अंतर को लेकर भ्रमित हो जाते हैं।
git fetch कमांड केवल रिमोट रिपॉजिटरी से मेटाडेटा पुनः प्राप्त करता है। इस मेटाडेटा का उपयोग यह जांचने के लिए किया जाता है कि क्या कोई परिवर्तन उपलब्ध हैं जिन्हें स्थानीय मशीन पर खींचा जा सकता है। git pull कमांड मेटाडेटा और बदली हुई फ़ाइलों दोनों को डाउनलोड करता है।
git pull कमांड पहले एक fetch ऑपरेशन निष्पादित करता है। यदि स्थानीय और रिमोट रिपॉजिटरी के बीच परिवर्तनों की पहचान की जाती है, तो उन परिवर्तनों को डाउनलोड किया जाएगा।
जब आप git pull कमांड का उपयोग कर रहे होते हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप परिवर्तनों को स्वीकार करने के लिए तैयार हैं। अन्यथा, जब आप अपना काम कमिट करने जाएंगे तो आपके रिपॉजिटरी में आपके कोड के बीच कॉन्फ्लिक्ट हो सकते हैं।
सारांश में, git fetch का उपयोग यह जांचने के लिए करें कि क्या आपके स्थानीय रिपॉजिटरी और रिमोट के बीच कोई परिवर्तन मौजूद हैं। git pull कमांड का उपयोग करें यदि आप अपने रिमोट रिपॉजिटरी के लिए मेटाडेटा पुनः प्राप्त करना चाहते हैं और रिपॉजिटरी में किए गए किसी भी परिवर्तन को डाउनलोड करना चाहते हैं।
निष्कर्ष
git pull कमांड एक रिमोट Git रिपॉजिटरी में संग्रहीत कोड को प्राप्त और डाउनलोड करता है। git pull कमांड git fetch के समान है। git fetch केवल मेटाडेटा पुनः प्राप्त करता है। git pull मेटाडेटा और रिपॉजिटरी में फ़ाइलों में किए गए परिवर्तनों को पुनः प्राप्त करता है।
इस ट्यूटोरियल ने कोड खींचने की मूल बातें और कोड खींचने के लिए git pull कमांड का उपयोग कैसे करें, इसका पता लगाया। अब आप पेशेवर डेवलपर की तरह git pull कमांड का उपयोग शुरू करने के लिए आवश्यक ज्ञान से लैस हैं!