नोट: के साथ शुरू Git 1.9 / 2.0 (क्यू 1 2014) , git fetch --tags
टैग को हासिल करेगा के अलावा क्या विकल्प के बिना एक ही कमांड लाइन से लाई जाती हैं।
माइकल Haggerty (mhagger) द्वारा प्रतिबद्ध c5a84e9 देखें :
पहले, --tags
रिंचेक को निर्दिष्ट करने के लिए " " विकल्प को समान माना जाता था
refs/tags/*:refs/tags/*
कमांड लाइन पर; विशेष रूप से, इसने remote.<name>.refspec
कॉन्फ़िगरेशन को अनदेखा कर दिया।
लेकिन यह भी अन्य संदर्भ प्राप्त करने में कठिनाई के बिना टैग लाने के लिए बहुत उपयोगी है, जबकि ऐसा नहीं है है काफी टैग लाने के लिए सक्षम होने के लिए उपयोगी के अलावा अन्य संदर्भ।
तो बाद के करने के लिए इस विकल्प के शब्दार्थ को बदलें।
यदि कोई उपयोगकर्ता केवल टैग प्राप्त करना चाहता है , तो स्पष्ट रीस्पेक निर्दिष्ट करना अभी भी संभव है:
git fetch <remote> 'refs/tags/*:refs/tags/*'
कृपया ध्यान दें कि 1.8.0.3 से पहले प्रलेखन " fetch --tags
" व्यवहार के इस पहलू के बारे में अस्पष्ट था ।
प्रतिबद्ध f0cb2f1 (2012-12-14) fetch --tags
ने प्रलेखन को पुराने व्यवहार से जोड़ा ।
यह नए व्यवहार (देखें Documentation/fetch-options.txt
) से मेल खाने के लिए दस्तावेज़ में बदलाव करता है ।
अनुरोध करें कि सभी टैगों को रिमोट से प्राप्त किया जाए और इसके अलावा जो भी प्राप्त हो रहा है ।
चूंकि Git 2.5 (Q2 2015) git pull --tags
अधिक मजबूत है:
देखें 19d122b प्रतिबद्ध द्वारा पॉल टैन ( pyokagan
) , 13 मई 2015
(द्वारा विलय Junio सी Hamano - gitster
- में cc77b99 प्रतिबद्ध , 22 मई 2015)
pull
: --tags
कोई मर्ज उम्मीदवारों के मामले में त्रुटि को दूर करें
चूंकि 441ed41 (" git pull --tags
": बेहतर संदेश के साथ त्रुटि।, 2007-12-28, Git 1.5.4+), किसी भी मर्ज किए गए उम्मीदवारों को वापस नहीं करने पर git pull --tags
एक अलग त्रुटि संदेश प्रिंट करेगा
git-fetch
:
It doesn't make sense to pull all tags; you probably meant:
git fetch --tags
ऐसा इसलिए है क्योंकि उस समय, git-fetch --tags
किसी भी कॉन्फ़िगर किए गए रीस्पेक को ओवरराइड करेगा, और इस तरह कोई मर्ज किए गए उम्मीदवार नहीं होंगे। इस प्रकार त्रुटि संदेश भ्रम को रोकने के लिए पेश किया गया था।
हालांकि, बाद से c5a84e9 ( fetch --tags
: लाने टैग के अलावा
अन्य सामान, 2013-10-30, Git 1.9.0+), git fetch --tags
किसी भी कॉन्फ़िगर किया गया refspecs के अलावा टैग लाने होगा।
इसलिए, यदि कोई मर्ज उम्मीदवारों की स्थिति नहीं होती है, तो ऐसा इसलिए नहीं है क्योंकि --tags
सेट किया गया था। जैसे, यह विशेष त्रुटि संदेश अब अप्रासंगिक है।
भ्रम को रोकने के लिए, इस त्रुटि संदेश को हटा दें।
Git के साथ 2.11+ (Q4 2016) git fetch
तेज है।
जेफ किंग ( ) द्वारा प्रतिबद्ध 5827a03 (13 अक्टूबर 2016) देखें । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 9fcd144 , 26 अक्टू 2016)peff
gitster
fetch
: has_sha1_file
टैग के लिए "त्वरित" का उपयोग करें
जब हम रिमोट का उपयोग करते हैं, जिसमें कई टैग होते हैं जो हमारे द्वारा अनुसरण की जा रही शाखाओं के लिए अप्रासंगिक होते हैं, तो हम जाँच करते समय बहुत अधिक चक्रों को बर्बाद करते थे यदि किसी टैग द्वारा इंगित की गई वस्तु (जिसे हम लाने नहीं जा रहे हैं!) हमारे रिपॉजिटरी में मौजूद है। बहुत ध्यान से।
यह पैच ऐसे मामलों में गति के लिए सटीकता का बलिदान करने के लिए HAS_SHA1_QUICK का उपयोग करना सिखाता है, ऐसे मामलों में जहां हम एक साथ पुनरावर्ती हो सकते हैं।
यहां शामिल पूर्ण स्क्रिप्ट से परिणाम हैं, जो ऊपर वर्णित एक स्थिति के समान है:
Test HEAD^ HEAD
----------------------------------------------------------
5550.4: fetch 11.21(10.42+0.78) 0.08(0.04+0.02) -99.3%
यह केवल उस स्थिति के लिए लागू होता है जहां:
- आपके पास
reprepare_packed_git()
महंगा बनाने के लिए क्लाइंट की तरफ बहुत सारे पैक हैं (सबसे महंगा हिस्सा एक अनसोल्ड सूची में डुप्लिकेट ढूंढ रहा है, जो वर्तमान में द्विघात है)।
- आपको सर्वर साइड पर बड़ी संख्या में टैग की आवश्यकता होती है जो ऑटो-फॉलोइंग के लिए उम्मीदवार हैं (यानी, क्लाइंट के पास नहीं है)। हर एक पैक डायरेक्टरी के री-रीड को ट्रिगर करता है।
- सामान्य परिस्थितियों में, ग्राहक उन टैगों का स्वतः अनुसरण करेगा और एक बड़े लाने के बाद, (2) अब सच नहीं होगा।
लेकिन अगर वे टैग इतिहास की ओर इशारा करते हैं जो ग्राहक से अलग हो गए हैं, तो वह कभी भी ऑटो-फॉलो नहीं करेगा, और वे उम्मीदवार इसे हर भ्रूण पर प्रभावित करेंगे।
Git 2.21 (फरवरी 2019) एक प्रतिगमन शुरू की है जब लगता है config remote.origin.fetch
है नहीं डिफ़ॉल्ट ( '+refs/heads/*:refs/remotes/origin/*'
)
fatal: multiple updates for ref 'refs/tags/v1.0.0' not allowed
Git 2.24 (Q4 2019) एक और अनुकूलन जोड़ता है।
मसाया सुजुकी ( ) द्वारा प्रतिबद्ध b7e2d8b (15 सितंबर 2019) देखें । ( जूनियो सी हमानो द्वारा विलय - - इसमें १ डी df बी ० एफडी , ० Oct अक्टूबर २०१ ९)draftcode
gitster
fetch
: oidset
तेजी से देखने के लिए चाहते हैं OIDs रखने के लिए उपयोग करें
git fetch
यदि ग्राहक विज्ञापित टैग 'OID' पहले से ही भ्रूण के अनुरोध के OID सेट में है, तो जाँच के दौरान ।
यह जाँच एक लीनियर स्कैन में की जाती है।
एक रिपॉजिटरी के लिए जिसमें बहुत सारे रेफ हैं, इस स्कैन को दोहराने में 15+ मिनट लगते हैं।
इसे गति देने के लिए, oid_set
अन्य रेफल्स के लिए OIDs बनाएं ।