Git Tagging
टैगिंग Git रिपॉजिटरी के इतिहास में विशिष्ट बिंदुओं को ट्रैक करने के लिए उपयोग की जाने वाली एक विशेषता है।
समय के साथ, जब आप Git रिपॉजिटरी के साथ काम कर रहे होते हैं, तो आप अपने कोडबेस में बड़ी संख्या में परिवर्तन करेंगे। Git में, कमिट्स का उपयोग व्यक्तिगत परिवर्तनों को ट्रैक करने के लिए किया जाता है।
हालांकि, यदि आप अपने रिपॉजिटरी के इतिहास में एक बिंदु को कैप्चर करना चाहते हैं जैसे कि एक वर्जन, तो आप Git टैगिंग सुविधा का उपयोग करना चाहेंगे।
यह ट्यूटोरियल उदाहरणों के साथ, टैगिंग की मूल बातें और Git रिपॉजिटरी में टैग के साथ काम करने के लिए git tag कमांड का उपयोग कैसे करें, इस पर चर्चा करेगा। इस ट्यूटोरियल को पढ़ने के अंत तक, आप Git में टैग के साथ काम करने में विशेषज्ञ होंगे।
Git Tagging
टैग रेफरेंस (refs) हैं जो Git रिपॉजिटरी के इतिहास के एक विशिष्ट हिस्से की ओर इशारा करते हैं।
टैग का उपयोग आमतौर पर डेवलपर्स द्वारा रिपॉजिटरी के इतिहास में एक विशिष्ट बिंदु को कैप्चर करने के लिए वर्जन रिलीज बनाने के लिए किया जाता है। उदाहरण के लिए, जब एक डेवलपर किसी प्रोजेक्ट के नए वर्जन को लॉन्च करने के लिए तैयार होता है, तो वे प्रोजेक्ट के लिए एक टैग बना सकते हैं।
सार में, टैग ऐसी ब्रांच हैं जो नहीं बदलतीं। आपके द्वारा एक टैग बनाने के बाद, टैग के इतिहास में कोई और कमिट नहीं जोड़े जाएंगे। इसके बजाय, टैग उस स्नैपशॉट को स्टोर करेगा कि रिपॉजिटरी कैसी दिखती थी जब टैग जोड़ा गया था।
Git में दो अलग-अलग प्रकार के टैग समर्थित हैं। ये हैं:
- एनोटेटेड टैग। ये वे टैग हैं जो Git डेटाबेस में पूर्ण ऑब्जेक्ट्स के रूप में स्टोर किए जाते हैं।
- लाइटवेट टैग। ये वे टैग हैं जो एक नाम और एक कमिट के पॉइंटर हैं।
अब हमने Git टैगिंग की मूल बातें चर्चा की हैं, आइए जानें कि आप Git में टैग के साथ कैसे काम कर सकते हैं।
एक टैग बनाएं
इससे पहले कि आप Git में टैग के साथ काम करना शुरू कर सकें, आपको एक टैग बनाने की आवश्यकता है। Git में टैग बनाने के लिए सिंटैक्स इस प्रकार है:
git tag <name>
"name" पैरामीटर उस टैग के नाम को संदर्भित करता है जिसे आप बनाना चाहते हैं। चूंकि टैगिंग का उपयोग आमतौर पर प्रोजेक्ट के वर्जन को ट्रैक करने के लिए किया जाता है, आप "v1.2" या "beta-v0.9" जैसे नाम का उपयोग टैग के लिए करना चाह सकते हैं।
आपके द्वारा बनाया गया टैग आपके रिपॉजिटरी में वर्तमान कमिट पर लागू होगा जिस पर आप हैं।
एनोटेटेड टैग
एक एनोटेटेड टैग एक टैग है जो Git डेटाबेस में एक पूर्ण ऑब्जेक्ट स्टोर करता है। जब आप एक एनोटेटेड टैग बनाते हैं, तो टैग बनाने वाले व्यक्ति का नाम, उनका ईमेल, और वह तारीख जिस पर टैग बनाया गया था, जैसे मेटाडेटा स्टोर किए जाएंगे।
इसके अलावा, एनोटेटेड टैग टैग के लिए एक संदेश के साथ स्टोर किए जाते हैं। आम तौर पर, एनोटेटेड टैग लाइटवेट टैग पर पसंद किए जाते हैं क्योंकि एनोटेटेड टैग द्वारा स्टोर किया गया मेटाडेटा भविष्य में कई उपयोगों का हो सकता है।
उदाहरण के लिए, यदि आप समय के साथ वर्जनिंग के लिए जिम्मेदार व्यक्ति को ट्रैक करना चाहते हैं, तो आपको एनोटेटेड टैग द्वारा स्टोर किए गए मेटाडेटा तक पहुंच की आवश्यकता होगी।
Git में एनोटेटेड टैग बनाने के लिए सिंटैक्स यहां दिया गया है:
git tag -a <name>
-a फ्लैग का उपयोग Git को एनोटेटेड टैग बनाने के लिए बताने के लिए किया जाता है। "name" पैरामीटर उस टैग का नाम है जिसे हम बनाना चाहते हैं।
इस कमांड को चलाने के बाद, सिस्टम-डिफ़ॉल्ट टेक्स्ट एडिटर खुल जाएगा और हमें अपने एनोटेटेड टैग के लिए एक संदेश डालने के लिए कहेगा। ऐसा इसलिए होता है क्योंकि, जैसा कि हमने पहले चर्चा की, एनोटेटेड टैग एक संदेश के साथ स्टोर किए जाते हैं।
वैकल्पिक रूप से, आप उस संदेश को सीधे निर्दिष्ट कर सकते हैं जिसके साथ एक टैग बनाया जाएगा। आप निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
git tag -a <name> -m <message>
-m टैग का उपयोग एनोटेटेड टैग में एक संदेश जोड़ने के लिए किया जाता है। मान लीजिए हम "version 1.9" संदेश के साथ v1.9 नामक एक टैग बनाना चाहते हैं। हम निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
git tag -a v1.9 -m "version 1.9"
जब हम इस कमांड को चलाते हैं, तो v1.9 नामक एक टैग साथ में "version 1.9" संदेश के साथ बनाया जाएगा।
इस कमांड को चलाना git tag का उपयोग बिना संदेश के करने से अधिक सुविधाजनक है, क्योंकि यह तरीका हमें डिफ़ॉल्ट टेक्स्ट एडिटर में टाइप किए बिना सीधे एक कमिट संदेश निर्दिष्ट करने की अनुमति देता है जो तब प्रकट होता है जब आप कमिट संदेश निर्दिष्ट नहीं करते हैं।
लाइटवेट टैग
लाइटवेट टैग बनाने के लिए, आपको पहले चर्चा किए गए मानक git tag सिंटैक्स का उपयोग करना चाहिए। मान लीजिए आप "v1.9.1" नामक एक लाइटवेट टैग बनाना चाहते हैं। आप निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
git tag v1.9.1
यह कमांड v1.9.1 नामक एक लाइटवेट टैग बनाएगा। जब आप एक लाइटवेट टैग बनाते हैं, तो आपको टैग संदेश निर्दिष्ट करने की आवश्यकता नहीं होती है। इसके बजाय, एक नया टैग चेकसम बनाया जाएगा और प्रोजेक्ट के .git फ़ोल्डर में स्टोर किया जाएगा।
प्रोजेक्ट के टैग सूचीबद्ध करें
जब आप एक बड़ी परियोजना पर काम कर रहे होते हैं, तो आपके रिपॉजिटरी के कई टैग्ड वर्जन हो सकते हैं। किसी प्रोजेक्ट के साथ स्टोर किए गए टैग की सूची प्राप्त करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
git tag
यह कमांड टैग की सूची लौटाता है। इस कमांड से एक उदाहरण आउटपुट यहां दिया गया है:
v1.9.1 v1.9.0 v1.8.11 v1.8.10 v1.8.9 ...
इसके अलावा, -l फ्लैग का उपयोग प्रोजेक्ट के साथ उपयोग किए जाने वाले टैग को फ़िल्टर करने के लिए किया जा सकता है। उदाहरण के लिए, यदि आप "v1.8" से शुरू होने वाले हर टैग की सूची प्राप्त करना चाहते हैं, तो आप इस कोड का उपयोग कर सकते हैं:
git tag -l v1.8*
हमारे कमांड में, हमने -l फ्लैग निर्दिष्ट किया है, उसके बाद "v1.8*"। यह Git को v1.8 से शुरू होने वाले सभी टैग की सूची प्राप्त करने का निर्देश देता है। एस्टेरिस्क (*) दर्शाता है कि लौटाए जाने वाले टैग में "v1.8" के बाद कोई भी वर्ण शामिल हो सकते हैं।
इस कमांड से एक उदाहरण आउटपुट यहां दिया गया है:
v1.8.11 v1.8.10 v1.8.9 v1.8.8 ...
जैसा कि आप देख सकते हैं, लौटाए गए सभी टैग "v1.8" से शुरू होते हैं।
एक टैग चेकआउट करें
git checkout कमांड का उपयोग किसी विशिष्ट टैग वाले कमिट में रिपॉजिटरी की स्थिति देखने के लिए किया जा सकता है। उदाहरण के लिए, मान लीजिए आप अपना रिपॉजिटरी देखना चाहते थे जब यह v1.1 में था। आप निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
git checkout v1.1
यह कमांड रिपॉजिटरी को "डिटैच्ड HEAD" स्थिति में ले जाता है, जिसका अर्थ है कि आपके द्वारा किए गए कोई भी परिवर्तन रिपॉजिटरी के टैग्ड वर्जन को अपडेट नहीं करेंगे। इसके बजाय, एक नया डिटैच्ड कमिट बनाया जाएगा जो किसी भी ब्रांच से जुड़ा नहीं होगा।
इस कमांड को चलाने के बाद, हम यह देखने में सक्षम हैं कि हमारा कोडबेस उस कमिट में कैसा दिखता था जिसे v1.1 टैग किया गया था।
पुराने कमिट को टैग करें
हमारे पिछले उदाहरणों में, हमने चर्चा की है कि वर्तमान Git वर्जन में टैग जोड़ने के लिए git tag फ़ंक्शन का उपयोग कैसे करें जिसके साथ आप काम कर रहे हैं। ऐसा इसलिए है क्योंकि, डिफ़ॉल्ट रूप से, git tag HEAD कमिट (वह कमिट जिसे आप वर्तमान में देख रहे हैं) के लिए एक टैग बनाएगा।
हालांकि, आप git tag कमांड का उपयोग करके पुराने कमिट को भी टैग कर सकते हैं। आप उस विशिष्ट कमिट का रेफरेंस निर्दिष्ट करके ऐसा कर सकते हैं जिसे आप टैग करना चाहते हैं।
मान लीजिए आप अपने रिपॉजिटरी में अंतिम कमिट में एक टैग जोड़ना चाहते हैं। ऐसा करने के लिए, आपको पहले git log चलाना होगा। यह आपको हाल के कमिट की सूची प्राप्त करने की अनुमति देगा। यहां git log कमांड का एक उदाहरण दिया गया है (--pretty=oneline फ्लैग के साथ, जो हमारे लिए हमारे कमिट देखना आसान बनाता है):
git log --pretty=oneline
हमारा कमांड वापस लौटाता है:
8cd29ae5d04abbdbd856d2c2f55f2b82133903e8 Push new logging feature 2911aae73ed1dd372bcdf8f520b174c3817c818b Initialize logging feature 9646aa785211f3069ce01177da98e23b7890d859 Fix issue #342
अब, मान लीजिए हम अपने "Fix issue #342" कमिट में एक टैग जोड़ना चाहते हैं। हम चाहते हैं कि यह टैग "v1.3" कहलाए। हम निम्नलिखित कोड का उपयोग करके इस टैग को जोड़ सकते हैं:
git tag -a v1.3 9646aa785211f3069ce01177da98e23b7890d859
यह कमांड हमारे कोड में संदर्भित कमिट में टैग 1.3 जोड़ता है। इस मामले में, हमने "Fix issue #342" संदेश वाले कमिट के लिए SHA हैश निर्दिष्ट किया।
पुराने टैग को बदलें
प्रत्येक कमिट में केवल एक टैग हो सकता है। यदि आप तय करते हैं कि आप किसी कमिट से जुड़े टैग को दूसरे टैग से बदलना चाहते हैं, तो आप git tag का उपयोग करके ऐसा कर सकते हैं। हालांकि, आपको -f (फोर्स) विकल्प निर्दिष्ट करना होगा, जो मौजूदा टैग को जगह में ओवरराइड करेगा।
मान लीजिए हम अपने पिछले उदाहरण में चर्चा किए गए कमिट में "v1.3.1" टैग जोड़ना चाहते हैं। यदि हमने -f फ्लैग का उपयोग किए बिना ऐसा करने की कोशिश की, तो एक त्रुटि संदेश दिखाई देगा। हमारे पिछले कमिट में "v1.3.1" टैग जोड़ने के लिए, हम इस कमांड का उपयोग कर सकते हैं:
git tag -a -f v1.3.1 9646aa785211f3069ce01177da98e23b7890d859
यह कमांड हमारे कमिट में "v1.3.1" टैग जोड़ता है और हमारे द्वारा पहले रखे गए "v1.3" टैग को ओवरराइड करता है।
एक टैग हटाएं
Git का उपयोग करके एक टैग को हटाने के लिए, आप -d फ्लैग का उपयोग कर सकते हैं। मान लीजिए हम अपने रिपॉजिटरी से "v1.3" टैग को हटाना चाहते हैं। हम निम्नलिखित कोड का उपयोग करके ऐसा कर सकते हैं:
git tag -d v1.3 git tag
हमारा कोड वापस लौटाता है:
v1.4 v1.2 v1.1
पहला कमांड हमारे रिपॉजिटरी से v1.3 टैग को हटा देता है। दूसरा कमांड टैग की सूची लौटाता है। जैसा कि आप देख सकते हैं, जब हम टैग की सूची प्राप्त करते हैं, तो v1.3 टैग गायब है। ऐसा इसलिए है क्योंकि हमने -d फ्लैग का उपयोग करके टैग को हटा दिया।
निष्कर्ष
टैगिंग Git की एक महत्वपूर्ण विशेषता है जिसका उपयोग डेवलपर्स Git रिपॉजिटरी के विभिन्न संस्करणों को ट्रैक करने के लिए करते हैं। टैग को डेवलपर द्वारा देखे जा रहे वर्तमान कमिट में जोड़ा जा सकता है, या रिपॉजिटरी में मौजूदा कमिट में।
इस ट्यूटोरियल ने उदाहरणों के साथ, Git में टैगिंग की मूल बातें और git tag कमांड का उपयोग कैसे करें, इस पर चर्चा की। अब आप पेशेवर डेवलपर की तरह git tag कमांड का उपयोग शुरू करने के लिए तैयार हैं!