आपके द्वारा सूचीबद्ध कदम काम करेंगे, लेकिन एक लंबा रास्ता है जो आपको अधिक विकल्प देता है:
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
fetchआदेश किसी भी बिंदु पर किया जा सकता है पहले merge, यानी, आप के आदेश स्वैप कर सकते हैं लाने और चेकआउट, क्योंकि fetchसिर्फ रिमोट नामित (के लिए खत्म हो जाता है origin) और यह करने के लिए कहते हैं: "गिम्मी सब कुछ आपको लगता है कि मैं नहीं है “, अर्थात, सभी सभी शाखाओं पर आधारित है। वे आपकी रिपॉजिटरी में कॉपी हो जाते हैं, लेकिन रिमोट पर origin/branchनामित किसी भी शाखा के लिए नामित branchहोते हैं।
इस बिंदु पर आप किसी भी दर्शक ( git log, gitkआदि) का उपयोग कर सकते हैं कि "उनके पास क्या है" यह देखने के लिए कि आप नहीं करते हैं, और इसके विपरीत। कभी-कभी यह केवल वार्म फजी फीलिंग्स के लिए उपयोगी होता है ("आह, हाँ, यह वास्तव में जो मैं चाहता हूं") और कभी-कभी यह पूरी तरह से रणनीति बदलने के लिए उपयोगी है ("वाह, मुझे अभी तक सामान नहीं चाहिए")।
अंत में, mergeकमांड दी गई कमिट को लेती है, जिसे आप नाम के रूप में ले सकते हैं origin/master, और उस कमिट और उसके पूर्वजों को लाने में जो कुछ भी लेता है, आप जिस भी शाखा में हैं, उसे चलाते हैं merge। आप तेजी से अग्रेषित करने के लिए सम्मिलित कर सकते हैं --no-ffया --ff-onlyरोक सकते हैं, या केवल तभी मर्ज कर सकते हैं जब परिणाम आपको पसंद हो, यदि आप चाहते हैं।
जब आप अनुक्रम का उपयोग करते हैं:
git checkout dmgr2
git pull origin master
pullआदेश का निर्देश चलाने के लिए git git fetch, और उसके बाद का नैतिक बराबर git merge origin/master। तो यह लगभग दो चरणों को हाथ से करने के समान है, लेकिन कुछ सूक्ष्म अंतर हैं जो शायद आपके संबंध में नहीं हैं। (विशेष रूप से fetchकदम से कदम केवलpull ऊपर लाता है , और यह आपके रेपो में रेफरी को अद्यतन नहीं करता है: 1 कोई भी नया हवाला केवल विशेष संदर्भ से हवा में भेजा जाता है ।) origin/masterFETCH_HEAD
यदि आप अधिक स्पष्ट git fetch origin(फिर वैकल्पिक रूप से चारों ओर देखते हैं) और फिर git merge origin/masterअनुक्रम का उपयोग करते हैं, तो आप masterरिमोट के साथ अपने स्वयं के स्थानीय को भी ला सकते हैं , fetchपूरे नेटवर्क में केवल एक रन के साथ :
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
उदाहरण के लिए।
1 इस दूसरे भाग को बदल दिया गया है - मैं कहता हूँ "निश्चित" - git 1.8.4, जो अब "दूरस्थ शाखा" को अवसरवादी संदर्भ में अद्यतन करता है। (यह था, जैसा कि रिलीज नोट्स कहते हैं, अपडेट को छोड़ने के लिए एक जानबूझकर डिजाइन का निर्णय, लेकिन यह पता चला है कि अधिक लोग इसे पसंद करते हैं जो इसे अपडेट करते हैं। यदि आप पुरानी रिमोट-शाखा SHA-1 चाहते हैं, तो इसे सहेजने में चूक होती है। , और इस तरह से पुनर्प्राप्त करने योग्य, फिर से भरना। यह अपस्ट्रीम विद्रोहियों को खोजने के लिए एक नया git 1.9 / 2.0 सुविधा भी सक्षम करता है।)