2010-01-06 13 views
8

अनुभाग अपस्ट्रीम में पुलिंग में परिवर्तन पर help.github's Forking a project यह कहता है:'git fetch अपस्ट्रीम मास्टर' कमांड में 'मास्टर' क्यों शामिल है?

कुछ समय बीत गया है, नदी के ऊपर रेपो बदल गया है और आप अपने कांटा अद्यतन करने के लिए इससे पहले कि आप एक नया पैच प्रस्तुत करना चाहते हैं।

$ git fetch upstream master 

$ git merge upstream/master 

वे लाने आदेश में master क्यों शामिल कर रहे हैं: ऐसा करने के दो तरीके हैं? मैंने git help fetch जानकारी देखी है लेकिन मुझे समझ में नहीं आता कि master क्या करता है। धन्यवाद।

उत्तर

6

करने की अनुमति देता है कि: शाखा नदी के ऊपर गुरु के अपने स्थानीय संस्करण

  • अद्यतन केवल
  • (के रूप में नदी के ऊपर रेपो की सभी शाखाएं है, जो लंबे समय तक ऐसा करने के लिए हो सकता है अद्यतन करने के रूप में विरोध किया) कोई किसी मर्ज तुरंत गति प्रदान (के रूप में पुल आदेश का विरोध किया)

git merge तो विलय करने की कोशिश करेंगे कि नदी के ऊपर का स्थानीय संस्करण अपने रेपो मास्टर शाखा के लिए मास्टर।

तो यहां, मास्टर fetch कमांड, एक रेफस्पेक के लिए है। गंतव्य रेफरी <dst> द्वारा पीछा किया,:

<refspec> 

एक <refspec> पैरामीटर का प्रारूप एक वैकल्पिक प्लस +, स्रोत रेफरी <src> द्वारा पीछा किया, उसके बाद एक कॉलन है।

दूरस्थ रेफरी कि <src> से मेल खाता प्राप्त किए गए है, और अगर <dst> रिक्त स्ट्रिंग, स्थानीय रेफरी यह तेजी से अग्रेषित <src> उपयोग कर रहा है कि मेल खाता नहीं है।
यदि वैकल्पिक प्लस + का उपयोग किया जाता है, तो स्थानीय रेफ अपडेट किया जाता है भले ही इसका परिणाम तेजी से अपडेट न हो।

यहां, <dst> खाली है, इसलिए मेल खाने वाली स्थानीय शाखा (आपका मास्टर) अपडेट किया गया है।


गुरु के बिना, कि देना होगा:

git fetch upstream 

उपरोक्त आदेश प्रतियां दूरस्थ refs/heads/ नाम स्थान और उन्हें दुकानों स्थानीय refs/remotes/upstream/ नाम स्थान से सभी शाखाओं, जब तक branch.<name>.fetch विकल्प के लिए प्रयोग किया जाता है एक गैर-डिफ़ॉल्ट refspec निर्दिष्ट करें।

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