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

Git Pull: रिमोट रिपॉजिटरी से कोड खींचने की गाइड

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 कमांड का उपयोग शुरू करने के लिए आवश्यक ज्ञान से लैस हैं!

  1. - Git "Cannot open .git/FETCH_HEAD: Permission denied" समाधान

    Cannot open .git/FETCH_HEAD: Permission denied Git रिपॉजिटरी में .git/ नामक एक विशेष फ़ोल्डर होता है। आपने यह फ़ोल्डर नहीं देखा होगा क्योंकि यह छिपा हुआ है। इस फ़ोल्डर की छिपी हुई स्थिति फ़ोल्डर नाम की शुरुआत में आने वाले फुल स्टॉप (.) द्वारा दर्शाई जाती है। यह फ़ोल्डर रिपॉजिटरी के बारे में मेटाडेटा

  1. - Git Detached HEAD: कारण और समाधान

    एक रिमाइंडर यह समझने के लिए कि HEAD क्या है, आइए Git की अंतर्निहित ट्री-जैसी संरचना पर एक रिफ्रेशर करें। वर्किंग डायरेक्टरी: या वर्किंग ट्री। यह आपके स्थानीय डायरेक्टरी को संदर्भित करता है और git status आपको आपकी वर्किंग डायरेक्टरी की स्थिति देगा। HEAD: यह सिर्फ आपकी वर्तमान ब्रांच का अंतिम कमिट स्

  1. Git Reset: कमिट पूर्ववत करने की पूरी गाइड Git Reset: कमिट पूर्ववत करने की पूरी गाइड

    Git का ट्रैकिंग तंत्र git reset पर जाने से पहले, हमें git की अंतर्निहित संरचना को समझने की आवश्यकता है। Git नोड्स और पॉइंटर्स के साथ ट्री-जैसी संरचनाओं के माध्यम से फ़ाइलों को प्रबंधित और ट्रैक करता है। आपके स्थानीय git रिपॉजिटरी पर मूल रूप से इन तीन ट्रीज़ हैं: वर्किंग डायरेक्टरी: या वर्किंग ट्री,