2012-06-30 20 views
53

से परिवर्तन के साथ एक स्थानीय शाखा अद्यतन करें मेरे पास 'my_local_branch' नाम की एक स्थानीय शाखा है, जो एक दूरस्थ शाखा origin/my_remote_branch ट्रैक करती है।एक ट्रैक की गई दूरस्थ शाखा

अब, दूरस्थ शाखा अद्यतन कर दी गई है, और मैं 'my_local_branch' पर हूं और उन परिवर्तनों को खींचना चाहता हूं। क्या मुझे बस करना चाहिए:

git pull origin my_remote_branch:my_local_branch 

क्या यह सही तरीका है?

उत्तर

44

आपको लगता है कि शाखा

की नदी के ऊपर निर्धारित किया है (देखें:

 
git branch -f --track my_local_branch origin/my_remote_branch 
# OR (if my_local_branch is currently checked out): 
$ git branch --set-upstream-to my_local_branch origin/my_remote_branch 

(git branch -f --track जीता काम नहीं करते अगर बी खेत की जाँच की है: के बजाय दूसरा आदेश git branch --set-upstream उपयोग करें, या आप "fatal: Cannot force update the current branch." के साथ मिल जाएगा)

अपनी शाखा इसका मतलब है कि already configured है:

branch.my_local_branch.remote origin 
branch.my_local_branch.merge my_remote_branch 

Git पहले से ही सभी आवश्यक जानकारी है।
उस मामले में:

# if you weren't already on my_local_branch branch: 
git checkout my_local_branch 
# then: 
git pull 

पर्याप्त है।


आपको लगता है कि नदी के ऊपर शाखा संबंध स्थापित नहीं किया था, तो जब यह पुश करने के लिए आया था अपने 'my_local_branch' है, तो एक सरल git push -u origin my_local_branch:my_remote_branch पर्याप्त हो गया होता पुश करने के लिए और नदी के ऊपर शाखा की स्थापना की।
उसके बाद, बाद में खींचने/धक्का के लिए, git pull या git push फिर से पर्याप्त होगा।

+0

ओपी का उल्लेख है कि वे पहले ही रिमोट शाखा को ट्रैक कर रहे हैं। – Amber

+3

@ अंबर इसलिए मेरा जवाब: 'गिट पुल' पर्याप्त है। – VonC

+0

पहला आदेश 'गिट शाखा-एफ --ट्रैक मास्टर मूल/मास्टर' एक त्रुटि देता है:' घातक: वर्तमान शाखा को अद्यतन करने के लिए मजबूर नहीं कर सकता। ' –

39

आप : वाक्यविन्यास का उपयोग नहीं करते हैं - pull हमेशा वर्तमान में चेक-आउट शाखा को संशोधित करता है। इस प्रकार:

git pull origin my_remote_branch 

जब तुम my_local_branch की जाँच की है कि तुम क्या चाहते हो जाएगा।

के बाद से आप पहले से ही ट्रैकिंग शाखा सेट है, तो आप भी निर्दिष्ट करने की आवश्यकता नहीं है - तुम सिर्फ कर सकता है ...

git pull 

आप है, जबकि my_local_branch की जाँच की है, और यह पता लगाया से अपडेट हो जाएगा डाली।

+0

यह सरल समाधान मेरे लिए काम करता था। – pratyush

संबंधित मुद्दे