डिफॉल्ट गिट रिमोट कॉन्फ़िगरेशन में आपको टैग्स को स्पष्ट रूप से पुश करना होगा (जब वे स्वचालित रूप से एक साथ आते हैं तो कमिट के साथ वे इशारा करते हैं)। आपको उपयोग करने की आवश्यकता है
$ git push <remote> tag <tagname>
एक टैग को पुश करने के लिए, या
$ git push <remote> --tags
सभी टैग git push --tags
पुश करने के लिए (या डिफ़ॉल्ट रिमोट पर पुश करने के लिए, आमतौर पर origin
)।
यह बहुत ही इच्छित व्यवहार है, जिससे पुश टैग्स को स्पष्ट किया जा सके। पुशिंग टैग आमतौर पर सचेत पसंद होना चाहिए।
Junio C. Hamano ने जो लिखा उसे संक्षेप में (@Andre Miras द्वारा टिप्पणियों में जोड़ा गया)
जब आप ला रहे हैं, तो आप किसी दूरस्थ रिपॉजिटरी के साथ बातचीत कर रहे हैं जिसे किसी ने प्रकाशित किया है, जिसका अर्थ है:
- टैग के सेट मौजूद हैं जो सभी प्रकाशक चाहते थे कि लोग देखें, और
- न केवल आप बल्कि अन्य लोग भी इसी टैग को देखेंगे।
दूसरे शब्दों में, उन रिपॉजिटरी में टैग जिन्हें आप लाते हैं उन्हें सार्वजनिक और साझा करने के लिए डिज़ाइन किया गया है। यह डेवलपर्स के बीच संचार की सुविधा प्रदान करेगा यदि सभी के लिए ये समान टैग प्राप्त करना आसान है।
इसीलिए git fetch
स्वचालित रूप से "टैग्स" का अनुसरण किया जाता है, अर्थात जब वे संशोधन डाउनलोड करते हैं तो वे टैग को इंगित करते हैं - दूसरे शब्दों में सभी प्रासंगिक प्रकाशित टैग डाउनलोड करते हैं।
धक्का देते समय, आप अपने कामकाजी भंडार से जोर दे रहे हैं, जो कि ज्यादातर समय सार्वजनिक नहीं होता है, और उस भंडार में टैग को सार्वजनिक नहीं किया जाता है। आप अपनी प्रगति को चिह्नित करने के लिए अपने स्वयं के स्थानीय टैग का उपयोग कर सकते हैं, इसलिए यह आपके भंडार में उन सभी टैगों को नेत्रहीन रूप से धक्का देने का कोई मतलब नहीं है, जिन्हें आप अपने परिवर्तनों को प्रकाशित करने के लिए धक्का दे रहे हैं, जिनके टैग परिभाषा द्वारा सार्वजनिक हैं।
इसलिए आपको टैग को सार्वजनिक रूप से चिह्नित करने के लिए, टैग को स्पष्ट रूप से पुश करने की आवश्यकता है।
वैकल्पिक रूप से आप उन रिमोट को कॉन्फ़िगर कर सकते हैं जिन्हें आप हमेशा सभी टैगों को धकेलने के लिए धक्का देते हैं, उदाहरण के लिए ऐसा कुछ अपने में डालें .git/config
:
[रिमोट "प्रकाशित"] # या जो भी नाम दिया गया है
url = ...
धक्का = + रेफ्स / सिर / *: रेफ्स / सिर / *
धक्का = + refs / टैग / *: refs / टैग / *
इसका मतलब है कि बल को सभी प्रमुखों (सभी शाखाओं) और सभी टैगों (यदि आप सिर को जोर देने वाले बल नहीं चाहते हैं, तो refspec से '+' उपसर्ग हटा दें)।
git push --follow-tags
अब उपयोगी हो सकता है, नीचे मेरा जवाब देखें