चरण सूचीबद्ध काम करेंगे, लेकिन वहाँ एक लंबे समय तक रास्ता है कि आप अधिक विकल्प देता है:
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 और चेकआउट, क्योंकि fetch
सिर्फ नामित रिमोट (origin
) पर जाता है और कहता है: "जो कुछ भी आपके पास है वह मुझे दोहराएं", यानी, सभी शाखाओं पर सभी काम करते हैं। वे आपके भंडार में कॉपी हो जाते हैं, लेकिन branch
नामक किसी भी शाखा के लिए रिमोट पर origin/branch
नामित किया गया है।
इस बिंदु पर आप किसी भी दर्शक (git log
, gitk
, आदि) का उपयोग कर सकते हैं ताकि वे "उनके पास क्या हैं" जो आप नहीं करते हैं, और इसके विपरीत। कभी-कभी यह केवल गर्म फज़ी भावनाओं के लिए उपयोगी होता है ("आह, हाँ, वास्तव में जो मैं चाहता हूं") और कभी-कभी रणनीतियों को पूरी तरह से बदलने के लिए उपयोगी होता है ("वाह, मैं अभी तक यह सामान नहीं चाहता हूं")।
अंत में, merge
आदेश दिया प्रतिबद्ध लेता है, जो आप origin/master
के रूप में नाम कर सकते हैं, और जो यह जब आप merge
चलाने पर, कि प्रतिबद्ध और अपने पूर्वजों में लाने के लिए जो कुछ भी शाखा आप कर रहे हैं के लिए लेता है। आप तेजी से आगे बढ़ने के लिए --no-ff
या --ff-only
डाल सकते हैं, या यदि आप चाहें तो परिणाम केवल तेज़ी से आगे बढ़ने पर विलय कर सकते हैं।
आप अनुक्रम का उपयोग करते हैं:
git checkout dmgr2
git pull origin master
pull
आदेश का निर्देश git fetch
चलाने के लिए Git, और फिर git merge origin/master
का नैतिक बराबर। तो यह लगभग हाथ से दो चरणों को करने जैसा ही है, लेकिन कुछ सूक्ष्म मतभेद हैं जो शायद आपके लिए भी प्रासंगिक नहीं हैं। (विशेष रूप से fetch
कदम pull
द्वारा चलाए जा केवल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
उदाहरण के लिए।
इस दूसरे भाग बदल-मैं कर दिया गया है कहते हैं कि "तय" -इन Git 1.8.4, जो अब opportunistically अद्यतन करता है "दूरस्थ शाखा" संदर्भ। (यह रिलीज नोट्स के रूप में, अद्यतन को छोड़ने के लिए एक जानबूझकर डिजाइन निर्णय था, लेकिन यह पता चला है कि अधिक लोग इसे गिट अपडेट करते हैं।यदि आप पुरानी रिमोट-शाखा SHA-1 चाहते हैं, तो यह रीफ्लॉग से सहेजा जा सकता है, और इस प्रकार पुनर्प्राप्त करने योग्य है। यह अपस्ट्रीम रीबेस को खोजने के लिए एक नई गिट 1.9/2.0 सुविधा भी सक्षम बनाता है।)
पहले डीएमजीआर 2 शाखा में अपने सभी परिवर्तनों को प्रतिबद्ध करें। और फिर मास्टर को इंगित करें 1. गिट चेकआउट मास्टर और फिर नवीनतम परिवर्तन प्राप्त करें 2. गिट खींचें 3. विजिट मर्ज dmgr2 4. पुश -यू मूल मास्टर को दबाएं और फिर अपने dmgr2 पर वापस जाएं 5. चेकआउट dmgr2 –
मैंने पहले से ही मेरे सभी परिवर्तन dmgr2 शाखा में किए हैं, क्षमा करें कि –
जोड़ना भूल गया है यदि मैं चरण 4 करता हूं, तो क्या मेरे विकास में मास्टर को मास्टर में बदलाव नहीं करना चाहिए? मैं यह नहीं करना चाहता कि –