मैंने कुछ दूरस्थ ट्रैकिंग शाखाएँ git में स्थापित की हैं, लेकिन मुझे लगता है कि मैंने उन्हें 'git fetch' के साथ अपडेट करने के बाद कभी भी उन्हें स्थानीय शाखा में विलय नहीं किया।
उदाहरण के लिए, मान लीजिए कि मेरी दूरस्थ शाखा है, जिसे 'अन्य-शाखा' कहा जाता है। मैं स्थानीय स्तर पर एक ट्रैकिंग शाखा के रूप में उपयोग कर रहा हूँ
git branch --track an-other-branch origin/an-other-branch
अब तक सब ठीक है। लेकिन अगर वह शाखा अपडेट हो जाती है (आमतौर पर मेरे द्वारा चलती मशीन और उस मशीन से आने वाली), और मैं इसे मूल मशीन पर अपडेट करना चाहता हूं, तो मैं भ्रूण / मर्ज की समस्या में चल रहा हूं:
git fetch origin an-other-branch
git merge origin/an-other-branch
जब भी मैं ऐसा करता हूं, मुझे 'पहले से ही अद्यतित' संदेश मिलता है और कुछ भी विलय नहीं होता है।
हालाँकि, ए
git pull origin an-other-branch
हमेशा इसे अपडेट करें जैसे आप उम्मीद करेंगे।
साथ ही, रनिंग गिट भिन्न है
git diff origin/an-other-branch
दिखाता है कि मतभेद हैं, इसलिए मुझे लगता है कि मेरा वाक्यविन्यास गलत है।
मैं क्या गलत कर रहा हूं?
EDIT [2010-04-09]: मैंने एक दो बार चेक किया है, और मैं निश्चित रूप से एक अलग शाखा पर नहीं हूं। क्या मेरे 'गिट मर्च' के बाद 'गिट मर्ज' (जैसा कि ऊपर दिखाया गया है) ठीक उसी तरह से करना चाहिए जैसे कि गिट पुल? मुझे git स्टेटस आदि के परिणाम दिखाने वाले कुछ वर्कफ़्लो मिलेंगे।
git fetch origin an-other-branch
इसमें प्राप्त टिप को संग्रहीत करता हैFETCH_HEAD
, लेकिन नहींorigin/an-other-branch
(यानी सामान्य 'रिमोट ट्रैकिंग शाखा')। तो, कोई भी ऐसा कर सकता हैgit fetch origin an-other-branch && git merge FETCH_HEAD
, लेकिन @ गैरेथ कहते हैं कि ऐसा करना बेहतर है (या सिर्फ गिट पुल का उपयोग करें )।