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

रिपॉजिटरी में टर्मिनल खोलें

टर्मिनल खोलें और उस फ़ोल्डर में जाएं जिसमें आपकी Git रिपॉजिटरी है। macOS टर्मिनल में डिफ़ॉल्ट शेल zsh होता है, हालांकि आपका सेटअप किसी अन्य शेल का उपयोग कर सकता है। नीचे दिए गए Git कमांड दोनों में काम करते हैं; शेल मेटाकैरेक्टर वाले ब्रांच नामों को उद्धरण चिह्नों (quotes) में रखा जाना चाहिए ताकि शेल उनका गलत अर्थ न निकाले। Apple का टर्मिनल गाइड

यदि आपके पास पहले से ही किसी कोड एडिटर में रिपॉजिटरी खुली है, तो उपलब्ध होने पर उसके इंटीग्रेटेड टर्मिनल का उपयोग करें। अन्यथा, टर्मिनल में cd टाइप करें, उसका पाथ डालने के लिए Finder से रिपॉजिटरी फ़ोल्डर को टर्मिनल विंडो में खींचें (ड्रैग करें), फिर Return दबाएं। जांचें कि आप सही रिपॉजिटरी में हैं और ब्रांच स्विच करने से पहले किसी भी स्थानीय बदलाव की समीक्षा करें:

git status --short
git remote -v

git remote -v कॉन्फ़िगर किए गए रिमोट नामों और URL को सूचीबद्ध करता है। नीचे दिए गए कमांड origin का उपयोग करते हैं, जो एक सामान्य रिमोट नाम है; इसे अपने Mac पर दिखाए गए वास्तविक नाम से बदलें। यदि कोई रिमोट सूचीबद्ध नहीं है, तो इस रिपॉजिटरी में वर्तमान में फ़ेच करने के लिए कोई कॉन्फ़िगर किया गया रिमोट नहीं है।

रिमोट ब्रांच फ़ेच करें

रन करें:

git fetch origin

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

आप पुष्टि कर सकते हैं कि ब्रांच स्थानीय रूप से दिखाई दे रही है:

git branch --remotes

आउटपुट में origin/feature/login खोजें। यदि यह मौजूद नहीं है, तो जांचें कि ब्रांच का नाम और रिमोट सही हैं, आप रिमोट को एक्सेस कर सकते हैं, और रिमोट के फ़ेच कॉन्फ़िगरेशन में वह ब्रांच शामिल है। यदि रिपॉजिटरी किसी प्रतिबंधित refspec का उपयोग करती है, तो एक सफल फ़ेच के बाद भी सर्वर की हर ब्रांच दिखाई नहीं दे सकती है।

लोकल ट्रैकिंग ब्रांच बनाएं और उस पर स्विच करें

जब रिमोट-ट्रैकिंग ब्रांच मौजूद हो और आप चाहते हैं कि लोकल ब्रांच भी उसी नाम का उपयोग करे, तो रन करें:

git switch --track origin/feature/login

Git एक लोकल feature/login ब्रांच बनाता है, इसके अपस्ट्रीम को origin/feature/login पर सेट करता है, और आपके वर्किंग ट्री को उस पर स्विच कर देता है। ट्रैकिंग संबंध git status जैसे कमांड को यह रिपोर्ट करने की अनुमति देता है कि लोकल ब्रांच अपने अपस्ट्रीम की तुलना में कैसी है, और Git को git pull जैसे ऑपरेशनों के लिए एक डिफ़ॉल्ट अपस्ट्रीम देता है। --track विकल्प उस अपस्ट्रीम को सेट करता है; इस रूप में Git रिमोट-ट्रैकिंग ब्रांच से ही स्थानीय नाम प्राप्त कर लेता है। Git switch दस्तावेज़

यदि आप एक अलग लोकल ब्रांच नाम चाहते हैं, तो इसे स्पष्ट रूप से निर्दिष्ट करें:

git switch --track --create login-work origin/feature/login

यह origin/feature/login को ट्रैक करने वाली एक लोकल login-work बनाता है। Git के उन वर्शनों में जो नए switch कमांड का समर्थन करते हैं, --create, -c का विस्तृत रूप है। यदि Git रिपोर्ट करता है कि switch अज्ञात है, तो git --version के साथ अपने इंस्टॉल किए गए वर्शन की जांच करें; git switch को Git 2.23 में पेश किया गया था। उस स्थिति में, पुराने समकक्ष का उपयोग करें:

git checkout --track -b login-work origin/feature/login

ब्रांच सत्यापित करें और सामान्य त्रुटियों को संभालें

स्विच करने के बाद, सक्रिय ब्रांच और ट्रैकिंग स्थिति की पुष्टि करें:

git status -sb
git branch -vv

स्टेटस आउटपुट को लोकल ब्रांच और उसके अपस्ट्रीम की पहचान करनी चाहिए। ब्रांच लिस्टिंग में, login-work को अपनी ट्रैकिंग ब्रांच के रूप में origin/feature/login दिखाना चाहिए।

यदि Git कहता है कि ब्रांच अस्पष्ट (ambiguous) है, तो स्वचालित अनुमान पर भरोसा करने के बजाय ऊपर दिखाए गए पूर्ण रूप से निर्दिष्ट remote/branch प्रारूप का उपयोग करें। Git का शॉर्टहैंड git switch feature/login स्वचालित रूप से एक ट्रैकिंग ब्रांच बना सकता है जब केवल एक रिमोट के पास मिलती-जुलती ब्रांच होती है, लेकिन जब कई रिमोट में वह नाम होता है तो अस्पष्टता उत्पन्न हो सकती है। Git switch दस्तावेज़

यदि स्विच करने से मना कर दिया जाता है क्योंकि स्थानीय परिवर्तन ओवरराइट हो जाएंगे, तो आगे बढ़ने से पहले रुकें और git status की समीक्षा करें। जिस काम को आप रखना चाहते हैं उसे कमिट करें या सुरक्षित रूप से स्टैश (stash) करें; स्विच करने के लिए बाध्य न करें या परिवर्तनों को तब तक न हटाएं जब तक आप यह न समझ लें कि क्या खो जाएगा। यदि लोकल ब्रांच का नाम पहले से मौजूद है, तो उस ब्रांच को सोच-समझकर चुनें या --create के साथ एक अलग स्थानीय नाम चुनें; यह मानकर न चलें कि मौजूदा ब्रांच पहले से ही उसी रिमोट को ट्रैक कर रही है जैसा आप चाहते थे।

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

स्रोत