`Git लाने के मूल 'और` git के दूरस्थ अद्यतन उत्पत्ति' में क्या अंतर है?


115

गिट रिपॉजिटरी से एक समय में एक कमिट खींचने के बारे में एक सवाल के जवाब में , मुझे git remote updateइसके बजाय उपयोग करने की सिफारिश की गई थी git fetch। मैंने दोनों मैन पेज पढ़े हैं, लेकिन यह नहीं कह सकता कि मैं इसकी संपूर्णता को समझता हूं।

क्या कोई मुझे समझा सकता है कि कैसे git fetch originऔर get remote update originअलग तरह से व्यवहार करें?


जवाबों:


133

इस तरह से इस्तेमाल करने पर कोई फर्क नहीं पड़ता।

remote updateएक बहुत ही उच्च-स्तरीय कमांड है - यह समूहीकृत रीमोट्स ( remotes.<group> = <list>) का समर्थन करता है , और सभी रीमोट्स को अपडेट करता है ( remote.<name>.skipDefaultUpdateसेट के साथ उन लोगों को छोड़कर ), लेकिन इनमें से कोई भी अधिक विशिष्ट विकल्प नहीं है। हालांकि, हुड के तहत, यह डिफ़ॉल्ट विकल्पों के साथ लाने के समान सटीक कार्य करता है।

remote updateGit fetch के बजाय सिफारिश करने वाला उत्तर वास्तव में इसे दूरस्थ नाम के बिना सिफारिश कर रहा था, बस सभी को लाने के लिए, न कि केवल एक तर्क के रूप में नाम दिया गया। इसके बराबर है git fetch --all

मुझे उस चेतावनी को जोड़ना चाहिए जो वास्तव में v1.6.6.1 (23 दिसंबर 2009 को जारी) तक लाने के लिए और रिमोट अपडेट वास्तव में एक ही कोडपाथ का उपयोग नहीं किया था। इससे पहले भी, हालांकि, उन्होंने अनिवार्य रूप से एक ही काम किया था, बस अलग-अलग कोड का उपयोग करना (संभवतः कोने के मामलों में थोड़ा अलग व्यवहार करना, लेकिन मैं अपने सिर के ऊपर से कोई भी नहीं सोच सकता हूं)।


1
बहुत ही रोचक। +1। यदि आप Git रिलीज़ नोट्स (जो मैंने यहां संकलित किए हैं: pastebin.com/LNhRhQS3 ) देखें, तो ऐसा लगता है कि केवल 1.7.0 (1.6.6.2 के बाद) " git fetch --all" के स्थान पर " git remote update" का उपयोग करने की अनुमति देता है ।
वॉनक

आह, मैं वास्तव में जाँच नहीं किया था जब fetch --allमैं अंदर चला गया। मैं यह सब सिर्फ git log --grep=...और सिर्फ git describe --containsमेरे git.git क्लोन की विविधताओं से करता हूँ।
कैस्केबेल

हम्म, अच्छी तरह से अजीब है कि 9c4a036b "जीट लाने के लिए" - theall विकल्प सिखाओ, और git वर्णन --contains देता है v1.6.6.1~1^2~9। (एक ही रिलीज के रूप में दूरस्थ अद्यतन परिवर्तन मैंने अपने उत्तर में उल्लेख किया है, वहां मामूली रिलीज संस्करण को जोड़ने के लिए अद्यतन किया गया है)। शायद यह सिर्फ रिलीज नोट्स में देरी हो रही थी?
कैस्केबेल

@ जेफ्रोमी: उस जानकारी को खोदने का अच्छा तरीका है, लेकिन मैं पहले जारी किए गए नोटों को देखना पसंद करता हूं और सभी रिलीज नोटों के लिए एक पृष्ठ की कमी से निराश था , इसलिए मेरी छोटी कॉपी पेस्टीबिन में।
VonC

@Jefromi: सही है ... अब मैं एकत्र करने के लिए एक रास्ता खोजने के लिए है सब क्यों प्रतिबद्ध 9c4a036b 1.7 से पहले आधिकारिक रिलीज में यह नहीं था कि "क्या Git में खाना पकाने है" क्रम में देखने के लिए;)
VonC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.