गिट पुल ओरिजिन मास्टर और गिट पुल ओरिजिन / मास्टर के बीच अंतर


283

बीच क्या अंतर है git pull origin masterऔर git pull origin/master?


1
शांत बहुत ज्यादा इसे कवर किया गया है, लेकिन गैर-जवाब यह है कि आपको कभी भी ऐसा नहीं करना चाहिए git pull origin/master। यदि आप [स्थानीय रूप से संग्रहीत] दूरस्थ शाखा को मर्ज करना चाहते हैं origin/master, तो उपयोग करें git merge origin/master
कैस्केबेल

3
@ जेफ्रोमी: क्या आप बता सकते हैं कि गिट पुल की तुलना में गिट मर्ज करना हमेशा बेहतर क्यों होता है?
राहेल

16
git pullgit fetchइसके बाद का मतलब है git merge। यह रिमोट से सामग्री प्राप्त करता है, फिर इसे आपकी वर्तमान शाखा में विलय कर देता है। लेकिन origin/masterएक स्थानीय शाखा (एक दूरस्थ शाखा पर नज़र रखने वाली) है। यदि आप इसे मर्ज करना चाहते हैं, तो आपको कुछ भी लाने की आवश्यकता नहीं है। यह कहना भ्रामक है git pull origin/masterजब आप वास्तव में रिमोट से नहीं ला रहे हैं।
कैस्केबेल

उपयोगी जानकारी के लिए धन्यवाद जेफ्रोमी। यह वास्तव में बहुत आसानी से इतनी आसान अवधारणा को समझने में मदद नहीं करता है।
राहेल

यह पढ़ने और अभी भी भ्रमित लोगों के लिए, origin/masterस्थानीय रूप से संग्रहीत शाखा है जो मूल रिमोट पर मास्टर शाखा को कैश करती है।
इहानी

जवाबों:


355

git pull origin masteroriginदूरस्थ, masterशाखा से परिवर्तन खींचेंगे और उन्हें स्थानीय चेक-आउट शाखा में विलय कर देंगे।

git pull origin/masterस्थानीय रूप से संग्रहीत शाखा से परिवर्तन खींचेंगे origin/masterऔर स्थानीय चेक-आउट शाखा में विलय कर देंगे। origin/masterशाखा अनिवार्य रूप से क्या पिछले से खींचा गया था की एक "कैश की गई प्रतिलिपि" है origin, जो कारण है कि यह Git की भाषा में एक दूरस्थ शाखा कहा जाता है। यह कुछ भ्रामक हो सकता है।

आप क्या शाखाओं में उपलब्ध हैं देख सकते हैं git branchऔर git branch -r"दूरस्थ शाखाओं" को देखने के लिए।


1
के मामले में git pull origin masterयह हमेशा मास्टर शाखा में मर्ज हो जाएगा, मेरे रेपो में एक और शाखा पर देता है कहते बजे और फिर आदेश ऊपर कर रहा हूँ, यह परिवर्तन के साथ मूल रिमोट परिवर्तन या मेरे मालिक शाखा के साथ मेरे वर्तमान शाखा अद्यतन करेगा?
राहेल

4
@calmh: git merge(और इसलिए git pull) हमेशा वर्तमान शाखा में विलीन हो जाती है। अपनी वर्तमान शाखा के अलावा किसी अन्य चीज़ के साथ विलय करने के लिए, पहले इसे देखें।
कैस्केबेल

2
उम .. मैं नहीं देखता कि 'मूल / मास्टर' 'मूल मास्टर' से कैसे अलग है; वे मूल पर दोनों मास्टर शाखा हैं। क्या आप वास्तव में एक उदाहरण दे सकते हैं कि वे कब अलग होंगे?
hasen

69
git pull origin/masterहो सकता है कि जब यह लिखा गया था, तो एक वैध आदेश हो सकता है, लेकिन आजकल (git 1.7.10.3) यह इसके साथ विफल रहता है fatal: 'origin/master' does not appear to be a git repository(जैसा कि यह होना चाहिए - हमेशा रिमूव से खींचने के लिए पुल होता है)।
user1338062

3
क्यों इतना भ्रमित है git? तो हमारे पास 4 रिपॉजिटरी पूरी तरह से सही हैं? एक (1) रिमोट रिपॉजिटरी, (2) एक स्थानीय रिपॉजिटरी, (3) एक स्टेजिंग रिपॉजिटरी, (4) एक स्थानीय-रिमोट उर्फ ​​मूल / मास्टर है? Git के पास # 4 रिपॉजिटरी क्यों होगी?
मगें

3

git pull origin masterरिमोट की मास्टर ब्रांच से सभी बदलाव लाएंगे और इसे आपके लोकल में मर्ज कर देंगे। हम आमतौर पर गिट पुल ओरिजिन / मास्टर का उपयोग नहीं करते हैं। हम एक ही काम कर सकते हैं git merge origin/master। यह "कैश्ड कॉपी" से सभी परिवर्तनों को मर्ज कर देगा। मूल शाखा आपके स्थानीय शाखा में। मेरे मामले git pull origin/masterमें त्रुटि है।


1

git pull= git fetch+git merge origin/branch

git pullऔर git pull origin branchकेवल इस बात में भिन्नता है कि उत्तरार्द्ध केवल "अपडेट" मूल / शाखा और सभी मूल / * के रूप में git pullनहीं करता है।

git pull origin/branchसिर्फ इसलिए काम नहीं करेगा क्योंकि यह git fetch origin/branchअमान्य है।

संबंधित प्रश्न: git fetch + git मर्ज उत्पत्ति / मास्टर बनाम git पुल उत्पत्ति / गुरु

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