2014-10-28 6 views
7

यदि मैं एक टैग पर अधिकतम 1 की गहराई के साथ एक भंडार क्लोन करता हूं, तो यह काम करता है और उसे नीचे खींचता है। यदि मैं एक नए टैग के लिए 1 की गहराई के साथ या बिना किसी फ्रेच करना चाहता हूं, तो यह कुछ प्रसंस्करण करता है, लेकिन टैग 'गिट टैग' के तहत कभी दिखाई नहीं देता है। अगर मैं --टैग विकल्प की आपूर्ति करता हूं, तो यह केवल नई जानकारी के बजाय संपूर्ण भंडार डाउनलोड करता है। मुझे लगता है कि भंडार अधिक इतिहास प्राप्त नहीं कर रहा है, मैं बस डाउनलोड के समय से बचना चाहता हूं। उथले क्लोन भंडार से सभी टैग प्राप्त किए बिना नया टैग पाने का कोई तरीका है?गिट उथो एक नया टैग

git clone --branch 1.0 --depth 1 repositoryPath 
git fetch --depth 1 origin tags/1.1 # Does processing but no new tags 
git fetch --tags origin tags/1.1 # Pulls down the rest of the repository and adds all tags 
git fetch --depth 1 --tags origin tags/1.1 # Same as above 

अब, मैं दस्तावेज में इस पर ध्यान दिया है: "--depth ... गहरा प्रतिबद्ध के लिए टैग नहीं लाया गया है।"

क्या यह मैं चला रहा हूं? क्या सभी टैग डाउनलोड करने के अलावा ऐसा करने का कोई तरीका नहीं है?

उत्तर

7

पूर्ण <refspec> स्वरूप का उपयोग कर सकते हैं:

git fetch --depth 1 origin refs/tags/1.1:refs/tags/1.1 

या, (<refspec> के तहत) git-fetch options में निर्दिष्ट है:

tag <tag> रूप refs/tags/<tag>:refs/tags/<tag> एक ही मतलब है, यह दिए गए टैग तक सबकुछ लाने का अनुरोध करता है।

तो आपके प्रश्न का संक्षिप्त रूप जवाब

git fetch --depth 1 origin tag 1.1 
+0

बहुत बढ़िया होगा, कि यह किया था। मैंने refspec पूरी तरह से पर्याप्त नहीं पढ़ा। मैंने कल्पना की कि आपको सिर्फ एक रास्ता डालना पड़ा, रिमोट नहीं: स्थानीय। मुझे लगता है कि भ्रमित करने वाला हिस्सा यह है कि इस तरह काम करता है जैसा कि कुछ किया ... धन्यवाद –

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