GitHub रिपॉजिटरी से परिवर्तन के साथ एक स्थानीय भंडार का अद्यतन करना


567

मुझे GitHub से स्थानीय रूप से जाँच की गई परियोजना मिली है, और उस दूरस्थ रिपॉजिटरी के बाद से इसमें बदलाव किए गए हैं। नवीनतम परिवर्तनों के साथ मेरी स्थानीय प्रति अपडेट करने के लिए सही आदेश क्या है?


26
यह ध्यान देने योग्य है कि गिटब ने गिट और जीथब का उपयोग करने के लिए बहुत जानकारीपूर्ण और सहायक गाइड का एक सेट तैयार किया है। मैंने उन्हें अमूल्य पाया जब मैंने पहली बार गित करने का कदम उठाया। help.github.com
मार्क

जवाबों:


791

शायद:

git pull origin master

28
इसने शिकायत की: "आपने दूरस्थ 'मूल' से खींचने के लिए कहा, लेकिन एक शाखा निर्दिष्ट नहीं की। क्योंकि यह आपकी वर्तमान शाखा के लिए डिफ़ॉल्ट कॉन्फ़िगर किया गया रिमोट नहीं है, आपको कमांड लाइन पर एक शाखा निर्दिष्ट करनी होगी।" इसलिए मैंने "$ git पुल ओरिजनल मास्टर" की कोशिश की और यह ठीक काम किया।
जुआन लानुस

8
git पुल ओरिजिन मास्टर
Andrzej Rehmann

1
मैंने कुछ फ़ाइलें हटा दी हैं और यह उन्हें फिर से नहीं ला रहा है, कोई विचार?
कुंभ राशि

1
क्या हम इसे चलाने से पहले एक कमिट करते हैं? हर बार जब मैं इस कमांड को चलाता हूं, मैं 18347213846 संशोधित फाइलों के साथ अंत करता हूं जिन्हें मैंने टच नहीं किया था !!!
ऑर्कुन ओजेन

5
मैंने सिर्फ इतना ही सीखा है कि एक नई दूरस्थ रिपॉजिटरी शाखा को खींचने से स्थानीय रूप से उस नाम की एक शाखा नहीं बनती है, लेकिन इसके बजाय उस दूरस्थ शाखा को खींचती है जिसमें स्थानीय शाखा की जाँच की जानी है। मुझे यकीन नहीं है कि खाई को कम करने और रिपॉजिटरी को फिर से क्लोन करने का तरीका क्या है। किसी भी मामले में, ऐसा लगता है कि स्थानीय शाखा दूरस्थ शाखा से स्वतंत्र है और किसी को हमेशा यह सुनिश्चित करना चाहिए कि आप खींचने से पहले इच्छित स्थानीय शाखा में हैं।
Joe पर जो लैप

87

यह हर डिफ़ॉल्ट रेपो के लिए काम करना चाहिए:

git pull origin master

यदि आपकी डिफ़ॉल्ट शाखा से भिन्न है master, तो आपको शाखा नाम निर्दिष्ट करना होगा:

git pull origin my_default_branch_name

2
ज़रुरी नहीं। घातक: दूरस्थ रेफरी मास्टर नहीं मिल सका
विक्टर Eijkhout

1
@ रेखाउट प्रोबेल्ट इन योर रेपो केस में कोई मास्टर ब्रांच नहीं है, और कुछ अन्य ब्रांच को डिफ़ॉल्ट के रूप में सेट किया गया है
एंड्रीज रहमान

62
git fetch [remotename]

हालाँकि आपको किसी भी परिवर्तन को अपनी स्थानीय शाखाओं में मिलाना होगा। यदि आप उस शाखा पर हैं, जो Github पर एक दूरस्थ शाखा को ट्रैक कर रही है, तो

git pull

पहले एक भ्रूण लाएगा, और फिर ट्रैक की गई शाखा में विलय कर देगा


5
यदि आप git fetchविधि का उपयोग कर रहे हैं , तो आप टैग भी प्राप्त करना चाहेंगे git fetch -t। यदि आप परिवर्तनों ( git log HEAD..FETCH_HEAD) से संतुष्ट हैं , तो आप उन्हें अंदर मर्ज कर सकते हैं git merge FETCH_HEAD
ब्रैड ग्रिसम

16

यह प्रश्न बहुत ही सामान्य है और कुछ धारणाएँ हैं जिन्हें मैं इसे थोड़ा सरल बनाने के लिए करूँगा। हम मान लेंगे कि आप अपनी masterशाखा को अपडेट करना चाहते हैं ।

यदि आपने स्थानीय रूप से कोई परिवर्तन नहीं किया है, तो आप git pullकिसी भी नए कमिट को नीचे लाने और उन्हें अपने में जोड़ने के लिए उपयोग कर सकते हैं master

git pull origin master

यदि आपने बदलाव किए हैं, और आप एक नया मर्ज कमिट जोड़ने से बचना चाहते हैं, तो उपयोग करें git pull --rebase

git pull --rebase origin master

git pull --rebase यहां तक ​​कि अगर आपने बदलाव नहीं किया है तो भी काम करेगा और शायद आपका सबसे अच्छा कॉल है


1
रिबेस, और रिबेस के खतरे: atlassian.com/git/tutorials/rewriting-history/git-rebase । "रीबेज़ के खतरों को समझना" के पैराग्राफ 2 और 3 वास्तव में मुझे SVN के कमांड सेट को याद करते हैं।
विल्क

9

पहले से ही सेट मूल मास्टर के साथ, आपको बस नीचे दिए गए कमांड का उपयोग करना होगा -

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