गिट पुल कमांड आपके स्थानीय मशीन पर भंडार की सामग्री को पुनर्प्राप्त और डाउनलोड करता है। आपका स्थानीय भंडार अद्यतन किया जाता है ताकि यह दूरस्थ भंडार से सामग्री को दिखाए।
आप शायद ऐसी स्थितियों का सामना करेंगे जहाँ आप Git रिपॉजिटरी से जुड़े कोड को अपनी स्थानीय मशीन पर लाना और डाउनलोड करना चाहते हैं।
मान लें कि आप किसी ऐसे एप्लिकेशन पर काम कर रहे हैं जो स्थानीय किराना स्टोर पर ऑर्डर ट्रैक करता है। जैसे ही आप ऐप में बदलाव करते हैं, आप रिमोट रिपोजिटरी से कोड खींचना चाहेंगे। यह सुनिश्चित करेगा कि आप हमेशा नवीनतम कोड के साथ काम कर रहे हैं।
यहीं से git pull कमांड आती है। git pull कमांड का उपयोग रिमोट रिपोजिटरी से सामग्री को पुनः प्राप्त करने के लिए किया जाता है जिसे तब आपकी स्थानीय मशीन में सहेजा जाता है। इस ट्यूटोरियल में, हम उदाहरणों के साथ, git pull कमांड का उपयोग करके कोड खींचने की मूल बातों पर चर्चा करेंगे।
गिट पुल कमांड क्या है?
शब्द "पुलिंग कोड" एक दूरस्थ रिपॉजिटरी से सामग्री को डाउनलोड करने और इसे आपके कंप्यूटर पर सहेजने की प्रक्रिया का वर्णन करता है।
Git में कोड खींचने के लिए, आप git pull कमांड का उपयोग कर सकते हैं। git pull कमांड एक सहायक कमांड है जो दो अन्य कमांड निष्पादित करता है:git fetch और git merge।
आइए देखें कि गिट पुल कमांड कैसे काम करता है।
सबसे पहले, जब आप गिट पुल चलाते हैं, तो आप जिस रिमोट रिपोजिटरी को खींच रहे हैं उसे डाउनलोड किया जाएगा। रिपॉजिटरी से कोड की एक कॉपी और रेपो से जुड़े Git कमिट्स आपकी मशीन में सेव हो जाएंगे।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
इसके बाद, एक गिट मर्ज ऑपरेशन निष्पादित किया जाता है। यह ऑपरेशन आपके स्थानीय मशीन पर कोड को नए-पुनर्प्राप्त कोड के साथ मर्ज कर देता है, जिससे कोडबेस का एक अंतिम संस्करण बन जाता है। यह संस्करण उसी के बराबर होगा जिसे आपने दूरस्थ शाखा से प्राप्त किया है।
गिट पुल कमांड
git pull कमांड एक दूरस्थ रिपॉजिटरी को पुनः प्राप्त करता है और इसके कोड को आपके रिपॉजिटरी के स्थानीय संस्करण में डाउनलोड करता है। आइए कमांड पर एक नजर डालते हैं:
git pull <remote>
"रिमोट" पैरामीटर उस दूरस्थ रिपॉजिटरी को संदर्भित करता है जिसे आप अपनी स्थानीय मशीन पर खींचना चाहते हैं। जब आप इस कमांड को चलाते हैं, तो रिमोट रिपोजिटरी को पुनः प्राप्त कर लिया जाएगा और फिर रिपोजिटरी की आपकी स्थानीय कॉपी में मर्ज कर दिया जाएगा।
गिट पुल कमांड ट्रैक न की गई फाइलों को प्रभावित नहीं करता है। आपको केवल वही परिवर्तन प्राप्त होंगे जो Git द्वारा ट्रैक की जा रही दूरस्थ शाखाओं की फ़ाइलों में किए गए हैं। ये परिवर्तन आपके स्थानीय कार्यशील ट्री में सहेजे जाएंगे।
git pull origin
मान लीजिए कि हम अपने "मूल" भंडार की सामग्री को पुनः प्राप्त करना चाहते हैं। यह एक भंडार के साथ प्रयोग किया जाने वाला डिफ़ॉल्ट "दूरस्थ" मान है। हम मूल मास्टर शाखा को खींचकर ऐसा कर सकते हैं:
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 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 पुल ओरिजिन कमांड "dev-v0.9" शाखा पर कोड की एक प्रति बनाता है जिसे पुनर्प्राप्त और सहेजा जाता है। एक बार कोड डाउनलोड हो जाने के बाद, एक git मर्ज ऑपरेशन निष्पादित किया जाएगा। यह हमारे स्थानीय भंडार को अपडेट करेगा ताकि यह हमारे रिमोट के समान कोड दिखाए।
गिट फोर्स पुल
आप एक पुल ऑपरेशन को मजबूर कर सकते हैं। यदि आप एक ट्रैक न की गई फ़ाइल त्रुटि का सामना करते हैं जिसे आप त्यागना चाहते हैं, तो git pull सामान्य को बाध्य करना।
पुल ऑपरेशन को बाध्य करने से पहले, आपको यह सुनिश्चित करना चाहिए कि आप सुनिश्चित हैं कि आप किसी भी स्थानीय परिवर्तन को खोने के साथ सहज हैं। बलपूर्वक खींचने से आपके सभी स्थानीय परिवर्तन अधिलेखित हो जाएंगे।
खींचने के लिए मजबूर करने के लिए, पहले मेटाडेटा को उस प्रतिबद्धता के लिए प्राप्त करें जिसे आप अपनी स्थानीय मशीन पर सहेजना चाहते हैं:
git fetch --all
इसके बाद, आपको अपनी वर्तमान शाखा का बैकअप लेना चाहिए। अपनी वर्तमान शाखा का बैकअप लेने से यह सुनिश्चित हो जाएगा कि आप कोई भी परिवर्तन नहीं खोएंगे, जिसे आप बाद में वापस करना चाहते हैं:
git branch -b backup
अब जबकि हमारे पास अपनी शाखा का बैकअप है, हम अपने परिवर्तन खींच सकते हैं। हम इसे रीसेट कमांड का उपयोग करके कर सकते हैं:
git reset --hard origin/master
आप जिस प्रोजेक्ट के साथ काम कर रहे हैं, उससे जुड़े मूल और शाखा नामों के साथ आपको मूल/मास्टर को प्रतिस्थापित करना चाहिए। उत्पत्ति मूल भंडार का प्रतिनिधित्व करती है। मास्टर उस शाखा का नाम है जिससे हम अपना कोड ला रहे हैं।
हमारे गिट फोर्स पुल गाइड में गिट पुल को कैसे मजबूर करें इसके बारे में और पढ़ें।
गिट पुल बनाम गिट फ़ेच
गिट फ़ेच और गिट पुल दोनों रिमोट रिपोजिटरी की सामग्री को पुनर्प्राप्त करते हैं। कुछ डेवलपर्स गिट पुल और गिट फ़ेच कमांड के बीच के अंतर को लेकर भ्रमित हो जाते हैं।
गिट फ़ेच कमांड केवल रिमोट रिपोजिटरी से मेटाडेटा पुनर्प्राप्त करता है। इस मेटाडेटा का उपयोग यह जांचने के लिए किया जाता है कि क्या कोई परिवर्तन उपलब्ध है जिसे स्थानीय मशीन पर खींचा जा सकता है। गिट पुल कमांड मेटाडेटा और बदली गई फाइलों दोनों को डाउनलोड करता है।
गिट पुल कमांड पहले एक फ़ेच ऑपरेशन निष्पादित करता है। यदि स्थानीय और दूरस्थ रिपॉजिटरी के बीच परिवर्तनों की पहचान की जाती है, तो वे परिवर्तन डाउनलोड हो जाएंगे।
जब आप git pull कमांड का उपयोग कर रहे हों, तो आपको यह सुनिश्चित करना चाहिए कि आप परिवर्तनों को स्वीकार करने के लिए तैयार हैं। अन्यथा, जब आप अपना काम करने जाते हैं, तो आपकी रिपॉजिटरी आपके कोड के बीच विरोध का सामना कर सकती है।
संक्षेप में, यह जांचने के लिए git fetch का उपयोग करें कि आपके स्थानीय भंडार और रिमोट के बीच कोई परिवर्तन मौजूद है या नहीं। अगर आप अपने रिमोट रिपोजिटरी के लिए मेटाडेटा पुनर्प्राप्त करना चाहते हैं और किए गए किसी भी बदलाव को डाउनलोड करना चाहते हैं तो git pull कमांड का उपयोग करें।
निष्कर्ष
गिट पुल कमांड रिमोट गिट रिपोजिटरी में संग्रहीत कोड प्राप्त करता है और डाउनलोड करता है। गिट पुल कमांड गिट फ़ेच के समान है। गिट फ़ेच केवल मेटाडेटा पुनर्प्राप्त करता है। गिट पुल मेटाडेटा और रिपोजिटरी में फाइलों में किए गए परिवर्तनों को पुनः प्राप्त करता है।
इस ट्यूटोरियल ने कोड खींचने की मूल बातें और कोड खींचने के लिए git pull कमांड का उपयोग करने का तरीका खोजा। अब आप एक पेशेवर डेवलपर की तरह git pull कमांड का उपयोग शुरू करने के लिए आवश्यक ज्ञान से लैस हैं!