ट्रैक की गई दूरस्थ शाखा से परिवर्तन के साथ एक स्थानीय शाखा को अपडेट करें


95

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

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

git pull origin my_remote_branch:my_local_branch

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

जवाबों:


72

आपने उस शाखा का अपस्ट्रीम सेट किया है

(देख:

git Branch -f - ट्रैक my_local_branch मूल / my_remote_branch
# या (यदि my_local_branch वर्तमान में चेक आउट किया गया है):
$ git शाखा -सेट-अपस्ट्रीम-से my_local_branch मूल / my_remote_branch

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

इसका अर्थ है कि आपकी शाखा पहले से कॉन्फ़िगर है:

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फिर से, पर्याप्त होगा।


ओपी का उल्लेख है कि वे पहले से ही दूरस्थ शाखा को ट्रैक कर रहे हैं।
अंबर

7
@ इसलिए मेरा जवाब: git pull पर्याप्त है।
वॉन

पहला आदेश git branch -f --track master origin/masterएक त्रुटि देता है:fatal: Cannot force update the current branch.
मार्क क्रेमर

@MarkKramer हां, मैंने इसका उत्तर संपादित करने के लिए यह स्पष्ट कर दिया है कि यदि स्थानीय शाखा द्वारा वर्तमान में चेक आउट किया जाता है तो दूसरी कमांड का उपयोग किया जाएगा।
वॉन

आपको इसे भी बदलना चाहिए --set-upstream-to, --set-upstreamपदावनत किया जाना है और हटाया जाना है।
मार्क क्रेमर

86

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

git pull origin my_remote_branch

जब आप my_local_branchबाहर की जाँच कर चुके हैं तो आप जो चाहते हैं वह करेंगे।

चूंकि आपके पास पहले से ही ट्रैकिंग शाखा सेट है, इसलिए आपको निर्दिष्ट करने की आवश्यकता नहीं है - आप बस कर सकते हैं ...

git pull

जब आप my_local_branchजाँच कर चुके हों, और यह ट्रैक की गई शाखा से अपडेट हो जाएगा।


यह सही उत्तर होना चाहिए। यह इतना सरल है।
m4l490n
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.