आपके द्वारा सूचीबद्ध कदम काम करेंगे, लेकिन एक लंबा रास्ता है जो आपको अधिक विकल्प देता है:
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/master
FETCH_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 सुविधा भी सक्षम करता है।)