मुख्य सामग्री पर जाएँ

Git Pull: अपने लोकल रिपॉज़िटरी को अपडेटेड रखें

git pull कमांड रिमोट रिपॉज़िटरी से अपडेट्स लाकर उन्हें आपके मौजूदा ब्रांच में मर्ज करता है। अनावश्यक मर्ज कॉन्फ्लिक्ट्स से बचने के तरीके जानने के लिए आगे पढ़ें।
· 8 मि॰ पढ़ें

AI के साथ खोजें

यदि आप टीम में काम करते हैं या किसी विकसित होते प्रोजेक्ट पर अकेले भी काम कर रहे हैं, तो आप जानते हैं कि सुचारू सहयोग के लिए आपके लोकल रिपॉज़िटरी को अद्यतन रखना कितना आवश्यक है, और यहीं git pull काम आता है क्योंकि यह रिमोट बदलावों को आपके लोकल ब्रांच में समाहित करता है। संक्षेप में, git pull किसी रिमोट रिपॉज़िटरी से बदलावों को लाकर आपके लोकल ब्रांच में एकीकृत करता है। यह एक अहम कमांड है जो सुनिश्चित करता है कि आप हमेशा सबसे नवीन कोड के साथ काम कर रहे हैं, खासकर तेज़-रफ़्तार, सहयोगी प्रोजेक्ट्स में।

git pull की अच्छी बात यह है कि यह दो चरणों को एक साथ जोड़ देता है: पहले यह नवीनतम बदलाव डाउनलोड करने के लिए git fetch चलाता है, और फिर उन अपडेट्स को आपके ब्रांच में समाहित करने के लिए स्वतः git merge करता है। यदि आप अतिरिक्त मर्ज कमिट्स के बिना साफ़-सुथरा इतिहास चाहते हैं, तो git pull --rebase उपयोग करें।

यदि आप इन अवधारणाओं पर मजबूत पकड़ बनाना चाहते हैं, तो हमारा एकदम नया GitHub Fundamentals स्किल ट्रैक ज़रूर देखें। इस कोर्स से आप वर्ज़न हिस्ट्री और ब्रांचेस के साथ काम करना सीखेंगे, और अंत तक आते-आते आप उन्नत मर्जिंग रणनीतियों और रिपॉज़िटरी प्रबंधन के बारे में भी जान जाएंगे। 

Git Pull क्या है?

आइए इसे समझते हैं। जब आप git pull चलाते हैं, तो आप अपने लोकल ब्रांच को रिमोट रिपॉज़िटरी के नवीनतम कमिट्स से अपडेट करते हैं। यह ऐसे काम करता है:

  1. अपडेट फ़ेच करना: Git सबसे पहले git fetch चलाकर रिमोट से सभी नए कमिट्स लाता है।

  2. बदलाव मर्ज करना: इसके बाद यह स्वतः git merge करता है ताकि फ़ेच किए गए कमिट्स आपके मौजूदा ब्रांच में जुड़ जाएं।

  git pull फ़ेच और मर्ज प्रक्रिया

यह Git Pull प्रक्रिया का एक दृश्य प्रतिनिधित्व है। चार्ट दिखाता है कि रिमोट रिपॉज़िटरी (A → B → C) के कमिट्स कैसे फ़ेच होकर लोकल ब्रांच (A → B → D) में मर्ज होते हैं। डैश्ड लाइन मर्ज चरण को दर्शाती है, जहां कमिट C लोकल रिपॉज़िटरी में समाहित होता है। इससे स्पष्ट होता है कि git pull कैसे आपके लोकल ब्रांच को रिमोट के नवीनतम बदलावों से अपडेट रखता है।

Git Pull और संबंधित कमांड्स

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

कमांडविवरण
git pullरिमोट बदलावों को फ़ेच करके उन्हें मौजूदा ब्रांच में मर्ज करता है।
git pull origin <branch>किसी विशिष्ट रिमोट ब्रांच से बदलाव पुल करता है।
git pull --rebaseमर्ज की जगह रीबेस का उपयोग कर अधिक साफ़, रैखिक कमिट इतिहास बनाता है।
git pull --no-commit

रिमोट बदलावों को फ़ेच और मर्ज तो करता है पर स्वतः कमिट नहीं बनाता, ताकि आप कमिट करने से पहले मर्ज परिणाम की जाँच और संशोधन कर सकें।

git pull --verboseपुल प्रक्रिया के दौरान विस्तृत आउटपुट देता है, जिससे आपको पता चलता है कि वास्तव में कौन-से बदलाव फ़ेच हुए हैं।

ये विकल्प लचीलापन देते हैं ताकि आप अपने प्रोजेक्ट की ज़रूरतों के अनुसार अपडेट प्रक्रिया को ढाल सकें। उदाहरण के लिए, यदि आप साफ़-सुथरा कमिट इतिहास पसंद करते हैं, तो git pull --rebase आपके लिए उपयुक्त हो सकता है। या यदि आप मर्ज से पहले बदलावों को दोबारा परखना चाहते हैं, तो git pull --no-commit आपको अतिरिक्त नियंत्रण देता है।

आम Git Pull समस्याओं से बचना

सच यह है: git pull बहुत काम का है, लेकिन इसकी अपनी पेचीदगियां भी हैं। सबसे आम दिक्कतों से ऐसे निपटें और अपना वर्कफ़्लो स्मूद रखें:  

मर्ज कॉन्फ्लिक्ट्स

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

इसे ऐसे ठीक करें: 

  1. कॉन्फ्लिक्टेड फ़ाइलें खोलें और कॉन्फ्लिक्ट मार्कर्स (<<<<<<<, =======, >>>>>>>) ढूंढ़ें।  

  2. फ़ाइल संपादित करें और वांछित बदलाव रखें। 

  3. सेव करें, फ़ाइल को स्टेज करें (git add <file>) और मर्ज पूरा करें (git commit)।

अनकमिटेड बदलावों के साथ पुल करना

यदि आपके वर्किंग डायरेक्टरी में अनकमिटेड बदलाव हैं, git pull असफल हो सकता है क्योंकि रिमोट बदलावों को मर्ज करने के लिए साफ़ स्थिति चाहिए।  

समाधान यह है:

1. अपने बदलाव स्टैश करें:

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

git stash

2. नवीनतम बदलाव पुल करें:

अब जब आपकी वर्किंग डायरेक्टरी साफ़ है, तो आप रिमोट रिपॉज़िटरी से सुरक्षित रूप से नवीनतम बदलाव फ़ेच और मर्ज कर सकते हैं।

git pull

3. अपने स्टैश किए बदलाव दोबारा लगाएं:

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

git stash pop

इन चरणों का पालन करके, आप जानते हैं कि ब्रांच अपडेट करते समय आपके लोकल बदलाव सुरक्षित रूप से संग्रहीत रहते हैं। 

गलत ब्रांच से पुल करना

यदि आप git pull बिना ब्रांच बताए चलाते हैं, तो Git उस अपस्ट्रीम ब्रांच से पुल करता है जिसे आपका लोकल ब्रांच ट्रैक कर रहा है। यदि अपस्ट्रीम सही से सेट नहीं है, तो आप अनपेक्षित ब्रांच से बदलाव पुल कर सकते हैं, जिससे भ्रम या त्रुटियाँ हो सकती हैं।  

इससे ऐसे बचें: 

1. अपस्ट्रीम ब्रांच जाँचें:

git branch -vv

2. ज़रूरत हो तो सही अपस्ट्रीम सेट करें:

git branch --set-upstream-to=origin/<branch>

हमेशा यह दोबारा जाँच लें कि आप किस ब्रांच से पुल कर रहे हैं, खासकर जब आप कई ब्रांचेस के साथ काम कर रहे हों।

Git Pull का उपयोग करते समय श्रेष्ठ प्रक्रियाएँ

पहले बताई आम समस्याओं से बचने की बातों पर आगे बढ़ते हुए, यहां कुछ श्रेष्ठ प्रक्रियाएँ हैं जो आपको अपनी दैनिक कार्यप्रणाली में git pull का पूरा लाभ उठाने में मदद करेंगी:

  • बार-बार पुल करें: अपने ब्रांच को नियमित रूप से अपडेट करें ताकि बड़े कॉन्फ्लिक्ट्स इकट्ठे न हों। छोटे, क्रमिक बदलाव बाद में होने वाले भारी-भरकम मर्ज की तुलना में बहुत आसान होते हैं।

  • मर्ज से पहले जाँचें: पहले git fetch चलाएँ ताकि देखें कि आपके लिए कौन-से बदलाव प्रतीक्षा कर रहे हैं। इससे आप आने वाले कमिट्स की समीक्षा कर सकते हैं और तुरंत मर्ज किए बिना आवश्यक तैयारी कर सकते हैं।

  • रैखिक इतिहास बनाए रखें: यदि आप साफ़ कमिट इतिहास पसंद करते हैं, तो git pull --rebase उपयोग करें। यह कमांड आपके लोकल बदलावों को नवीनतम रिमोट कमिट्स के ऊपर रीबेस करता है, जिससे प्रोजेक्ट इतिहास सुसंगत रहता है।

  • मर्ज की समीक्षा करें: अतिरिक्त सावधानी के लिए git pull—- no-commit का उपयोग करें ताकि कमिट को अंतिम रूप देने से पहले मर्ज परिणामों का निरीक्षण कर सकें। इससे विसंगतियाँ जल्दी पकड़ी जा सकती हैं।

  • ब्रांच ट्रैकिंग सत्यापित करें: हमेशा git remote show origin चलाकर सुनिश्चित करें कि आपका लोकल ब्रांच सही रिमोट ब्रांच को ट्रैक कर रहा है। यह सरल जाँच गलत ब्रांच में अपडेट्स के पुल होने से बचाती है।

क्यों कुछ डेवलपर्स git pull से बचते हैं

हालाँकि git pull सुविधाजनक है, कुछ डेवलपर्स बेहतर नियंत्रण के लिए प्रक्रिया को दो चरणों में बाँटना पसंद करते हैं:  

1. पहले फ़ेच करें

git fetch

यह रिमोट बदलावों को लाता है, लेकिन उन्हें मर्ज नहीं करता।  

2. मैन्युअली एकीकृत करें

बदलावों को जोड़ने के लिए git merge उपयोग करें:  

git merge origin/<branch>

या साफ़ इतिहास के लिए git rebase का उपयोग करें:  

git rebase origin/<branch>

उदाहरण: Git Pull को क्रिया में देखना

आइए git pull के कुछ व्यावहारिक उदाहरणों से चलते हैं ताकि आप ठीक-ठीक देख सकें कि ये कमांड वास्तविक परिस्थितियों में कैसे काम करते हैं। 

बेसिक git pull का उपयोग

git pull कमांड आपके लोकल ब्रांच को रिमोट रिपॉज़िटरी के मुख्य ब्रांच से नवीनतम बदलावों के साथ अपडेट करने का सबसे आसान तरीका है। यह स्वतः git fetch के बाद git merge करता है। इस कमांड का उपयोग करके आप बिना अतिरिक्त चरणों के अपने लोकल रिपॉज़िटरी को रिमोट के ताज़ा अपडेट्स के साथ सिंक कर सकते हैं। git pull चलाने पर रिमोट से (आम तौर पर origin नामक) अपडेट्स फ़ेच होते हैं और आपके मौजूदा ब्रांच में मर्ज हो जाते हैं, जिससे आपका लोकल कोड अप टू डेट रहता है।

git pull उदाहरण

git pull --rebase का उपयोग

यदि आप अनावश्यक मर्ज कमिट्स के बिना एक साफ़, रैखिक इतिहास पसंद करते हैं, तो git pull --rebase बेहतर विकल्प है। यह कमांड रिमोट बदलावों को फ़ेच करता है और फिर आपके लोकल कमिट्स को उनके ऊपर दोबारा लागू करता है, जिससे संरचित कमिट इतिहास बना रहता है। यह सहयोगी प्रोजेक्ट्स में विशेष रूप से उपयोगी है जहाँ सुसंगत कमिट लॉग आवश्यक होता है। git pull --rebase चलाने से आपके लोकल कमिट्स फ़ेच किए गए बदलावों के ऊपर रिप्ले होते हैं, अनावश्यक मर्ज कमिट्स से बचाते हैं और रिपॉज़िटरी इतिहास को अधिक पठनीय रखते हैं।

git pull --rebase उदाहरण

git pull --no-commit का उपयोग

यदि आप रिमोट बदलावों को फ़ेच और मर्ज तो करना चाहते हैं लेकिन कमिट करने से पहले उनकी समीक्षा करना पसंद करते हैं, तो git pull--no-commit बेहतरीन विकल्प है। यह कमांड आपको मर्ज परिणामों का मैन्युअल रूप से निरीक्षण करने और किसी भी कॉन्फ्लिक्ट को कमिट को अंतिम रूप देने से पहले सुलझाने देता है। इससे आपको एकीकरण प्रक्रिया पर पूर्ण नियंत्रण मिलता है, जो सावधानीपूर्वक अपडेट्स के लिए उपयुक्त है जहाँ कमिट से पहले बदलावों का सत्यापन आवश्यक होता है।

git pull no commit उदाहरण

किसी विशिष्ट रिमोट ब्रांच से पुल करना

जब आप कई ब्रांचेस पर काम कर रहे हों, तो आपको डिफ़ॉल्ट मुख्य ब्रांच के बजाय किसी विशिष्ट रिमोट ब्रांच से अपने लोकल ब्रांच को अपडेट करने की ज़रूरत पड़ सकती है। git pull origin feature ब्रांच आपको निर्दिष्ट ब्रांच से नवीनतम कमिट्स फ़ेच और मर्ज करने देता है, ताकि आपका लोकल काम रिमोट के ताज़ा बदलावों के साथ अपडेट रहे। यह खासकर तब उपयोगी है जब अलग-अलग ब्रांचेस पर फीचर विकास या बग फिक्स पर सहयोग हो रहा हो।

Git Pull बनाम Git Fetch

Git के साथ काम करते समय आप अक्सर git pull और git fetch से रूबरू होंगे। ये समान दिख सकते हैं, पर इनके उद्देश्य अलग हैं। आइए अंतर समझते हैं ताकि आप सही समय पर सही कमांड चुन सकें।

अंतर समझना

  • git fetch रिमोट रिपॉज़िटरी से बदलावों को लाता है लेकिन उन्हें आपके वर्किंग ब्रांच में एकीकृत नहीं करता। यह केवल रिमोट ब्रांचेस की आपकी लोकल कॉपी को अपडेट करता है।

  • git pull git fetch जैसा ही करता है, लेकिन फ़ेच किए गए बदलावों को तुरंत आपके मौजूदा ब्रांच में मर्ज भी कर देता है।

तुलनात्मक सारणी

विशेषताgit fetchgit pull
क्या करता हैरिमोट से नए बदलाव डाउनलोड करता है लेकिन उन्हें मर्ज नहीं करताबदलाव डाउनलोड करता है और तुरंत मौजूदा ब्रांच में मर्ज कर देता है
वर्किंग डायरेक्टरी बदलता है?नहीं—सिर्फ रिमोट-ट्रैकिंग ब्रांचेस अपडेट होती हैंहाँ—मौजूदा वर्किंग ब्रांच में बदलाव करता है
किसके लिए बेहतरमर्ज से पहले रिमोट बदलाव जाँचनालोकल ब्रांच को तेज़ी से नवीनतम बदलावों से अपडेट करना
कभी भी सुरक्षित?हाँ, क्योंकि यह लोकल कार्य को प्रभावित नहीं करतानहीं, क्योंकि इसमें मर्ज कॉन्फ्लिक्ट हो सकते हैं
आम उपयोग परिदृश्यमर्ज करने का निर्णय लेने से पहले रिमोट बदलाव देखनालोकल ब्रांचेस को स्वतः अपडेटेड रखना
कमांड सिंटैक्सgit fetch origingit pull origin main

कब किसका उपयोग करें?

git fetch का उपयोग तब करें जब आप अपने ब्रांच को अपडेट करने से पहले बदलावों की समीक्षा करना चाहते हैं, बाद में मैन्युअली मर्ज या रीबेस करना चाहते हैं, या किसी फीचर ब्रांच पर काम करते समय अस्थिर बदलावों को पुल करने से बचना चाहते हैं। दूसरी ओर, git pull तब उपयोग करें जब आपको किसी साझा ब्रांच जैसे central या develop पर नवीनतम अपडेट्स चाहिए, आप बिना कॉन्फ्लिक्ट्स के रिमोट बदलावों को मर्ज करने को लेकर आश्वस्त हैं, या आप अपनी टीम की रिपॉज़िटरी के साथ सिंक में रहना चाहते हैं। कई डेवलपर्स जिन्हें एकीकरण पर अधिक नियंत्रण चाहिए, वे पहले git fetch और उसके बाद git merge या rebase मैन्युअली करते हैं। यदि आप उन्नत Git वर्कफ़्लोज़ में रुचि रखते हैं, तो संरचित तरीकों को अपनाना आपके वर्ज़न कंट्रोल को बेहतर बना सकता है।

निष्कर्ष

अब तक आपको git pull की ठोस समझ हो जानी चाहिए—यह कैसे काम करता है, कब उपयोग करना है, और आम दिक्कतों से बचने की सर्वश्रेष्ठ रणनीतियाँ क्या हैं। हमने देखा कि git pull git fetch और git merge को जोड़ता है, जिससे लोकल रिपॉज़िटरी को तेज़ी से अपडेट करना आसान हो जाता है। यदि आप साफ़ कमिट इतिहास पसंद करते हैं, तो git pull --rebase एक बढ़िया विकल्प है।

हमने विशिष्ट ब्रांचेस से पुल करने, तुरंत कमिट से बचने, और मर्ज कॉन्फ्लिक्ट्स को प्रभावी ढंग से संभालने जैसे प्रमुख विकल्पों पर भी चर्चा की। साथ ही, यह भी देखा कि क्यों कुछ डेवलपर्स आने वाले बदलावों पर अधिक नियंत्रण के लिए git fetch के बाद git merge चुनते हैं।

आखिरकार, अपने Git वर्कफ़्लो को सुचारू रखना इस बात को समझने पर निर्भर है कि बदलाव लोकल और रिमोट रिपॉज़िटरी के बीच कैसे चलते हैं। चाहे आप टीम प्रोजेक्ट पर सहयोग कर रहे हों या अपनी खुद की रिपॉज़िटरीज़ संभाल रहे हों, कब पुल, फ़ेच, मर्ज या रीबेस करना है—यह जानना आपको कई परेशानियों से बचाएगा। Git में सीखने को बहुत कुछ है, और DataCamp इसमें आपकी मदद के लिए है। मैं हमारे Foundations of Git कोर्स और Introduction to GitHub Concepts कोर्स की सिफारिश करता/करती हूँ—ये दोनों बेहतरीन विकल्प हैं।

Oluseye Jeremiah

लेखक

Oluseye Jeremiah

एआई, एमएल और डेटा साइंस में विशेषज्ञ तकनीकी लेखक, जो जटिल विचारों को स्पष्ट और सुगम बनाते हैं।

git pull सामान्य प्रश्न

git pull क्या करता है?

git pull आपके लोकल रिपॉज़िटरी को रिमोट रिपॉज़िटरी से बदलाव फ़ेच कर और उन्हें आपके मौजूदा ब्रांच में मर्ज करके अपडेट करता है। यह एक ही कमांड में git fetch और git merge को जोड़ता है।

git pull, git fetch से कैसे भिन्न है?

git fetch रिमोट रिपॉज़िटरी से बदलाव डाउनलोड करता है लेकिन उन्हें आपके लोकल ब्रांच में मर्ज नहीं करता, जबकि git pull बदलावों को फ़ेच करके स्वतः मर्ज कर देता है।

यदि git pull से मर्ज कॉन्फ्लिक्ट हो जाए तो मुझे क्या करना चाहिए?

यदि git pull से मर्ज कॉन्फ्लिक्ट होता है, तो Git मर्ज को रोक देगा। आपको कॉन्फ्लिक्टेड फ़ाइलों को मैन्युअली सुलझाना होगा, फिर git add से बदलाव स्टेज करें, और git commit चलाकर मर्ज पूरा करें।

मैं बिना मर्ज किए बदलाव कैसे पुल कर सकता/सकती हूँ?

git pull --rebase का उपयोग git pull की जगह करें ताकि आने वाले बदलाव आपके लोकल कमिट्स के ऊपर लागू हों, मर्ज कमिट्स से बचा जा सके और इतिहास रैखिक रहे।

किसी विशिष्ट ब्रांच से बदलाव कैसे पुल करें?

git pull origin <branch-name> चलाएँ ताकि रिमोट रिपॉज़िटरी की किसी विशिष्ट ब्रांच से बदलाव फ़ेच और मर्ज करके उन्हें आपके मौजूदा लोकल ब्रांच में ला सकें।

विषय