पहला, एक नोट: रिमोट रिपोजिटरी में एक से अधिक शाखाएं हो सकती हैं; हेड का मतलब है (स्थानीय विकास और स्थानीय शाखाओं के लिए) वर्तमान में शाखा की जांच की गई है, और दूरदराज के दूरस्थ रिमोट ट्रैकिंग शाखा (प्रतीकात्मक संदर्भ) remote/HEAD
का अर्थ दूरस्थ पर डिफ़ॉल्ट शाखा है। 'शाखा के सिर' जैसी कोई चीज नहीं है; हेड शाखा के लिए एक सूचक है (या कभी-कभी प्रतिबद्धता के लिए)।
दूसरा, गिट पूरे वृक्ष स्तर (भंडार में सभी फाइलों) पर (Novelocrat wrote) चलाता है। गिट में आप एक शाखा चेकआउट करते हैं (हालांकि आप कुछ शाखा से फ़ाइल संस्करण को भी कार्यशील निर्देशिका में चेकआउट कर सकते हैं, यह कम कॉमकॉन ऑपरेशन है)।
गिट में आप केवल कुछ स्थानीय शाखाओं के शीर्ष पर नई प्रतिबद्धता बना सकते हैं। आप रिमोट-ट्रैकिंग शाखाओं पर सीधे काम नहीं कर सकते हैं, क्योंकि वे दूरस्थ भंडार की शाखाओं का पालन करने के लिए हैं (और आप अपना काम खोने पर खो देंगे)।
इसलिए सरल "git checkout origin
" (यह मानते हुए कि दूरदराज के origin
कहा जाता है) है, जो "git checkout origin/HEAD
" है, जो आमतौर पर है के लिए शॉर्टकट है "git checkout origin/master
" रिमोट ट्रैकिंग शाखा के एक राज्य चेकआउट होगा अनाम शाखा में है, इसलिए अलग बुलाया सिर। यह एक अच्छा समाधान है यदि आप केवल रिमोट-ट्रैकिंग शाखा स्थिति को देखना/ब्राउज़ करना चाहते हैं।
यदि आप का उपयोग करें "git checkout --track origin/master
" स्थानीय शाखा master
, जो पालन (ट्रैक) रिमोट ट्रैकिंग शाखाorigin/master
करने के लिए है पैदा करेगा। ध्यान दें कि गिट-क्लोन स्वचालित रूप से दूरस्थ origin
(आमतौर पर origin/master
) की डिफ़ॉल्ट शाखा (origin/HEAD
) के लिए ऐसी स्थानीय शाखा (आमतौर पर master
) सेट करता है, इसलिए आपको ऐसा करने की आवश्यकता नहीं है। फिर शाखा master
पर "git pull
" सरल होगा (यदि आवश्यक हो), और रिमोट रिपोजिटरी में संबंधित शाखा में परिवर्तनों के साथ अपने स्थानीय परिवर्तनों को मर्ज करने का प्रयास करें। अगर रिमोट में कोई बदलाव नहीं आया है, तो यह "अद्यतित" स्थिति है और आपकी स्थानीय शाखा नहीं बदलेगी; अगर आपकी स्थानीय शाखा में कोई बदलाव नहीं आया लेकिन रिमोट में था, तो स्थानीय शाखा बस रिमोट-ट्रैकिंग शाखा की स्थिति में उन्नत है, जिसे "फास्ट-फॉरवर्ड" कहा जाता है। आप "" के बारे में सोच सकते हैं, "svn update
" के बहुत मोटे समकक्ष के रूप में।
आप अपनी स्थानीय शाखा को पर रिमोट-ट्रैकिंग शाखा "git reset --hard origin
" के साथ रिवाइंड कर सकते हैं।ध्यान दें कि --hard
का अर्थ है कार्यशील निर्देशिका के ओवरराइट को मजबूर करने के लिए, इसलिए कोई भी असम्बद्ध परिवर्तन खो जाएगा! देखभाल के साथ प्रयोग करें।
अंत में आप रिमोट ट्रैकिंग शाखा से एकल फाइल की जाँच करना चाहते हैं (यानी के रूप में यह रिमोट ट्रैकिंग शाखा में है फ़ाइल की निर्देशिका संस्करण में काम करने में है करने के लिए), तो आप बस की 'pathspec' फार्म का उपयोग कर सकते हैं गिट-चेकआउट, अर्थात् "git checkout origin -- file
"। अगर आप केवल यह देखना चाहते हैं कि फ़ाइल दूरस्थ-ट्रैकिंग शाखा में कैसा दिखता है, तो "git show origin:path/to/file
" का उपयोग करें।
HTH