सभी Git टैग कैसे सूचीबद्ध करें?


675

मेरी रिपॉजिटरी में, मैंने निम्नलिखित कमांड का उपयोग करके टैग बनाए हैं।

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

आप रिपॉजिटरी के सभी टैग को कैसे सूचीबद्ध करेंगे?

जवाबों:


953
git tag

पर्याप्त होगा। मैन पेज देखेंgit tag


आपके पास भी है:

git tag -l <pattern>

उन नामों के साथ सूची सूचीबद्ध करें जो दिए गए पैटर्न से मेल खाते हैं (या यदि कोई पैटर्न नहीं दिया गया है)।
तर्कों के बिना "गिट टैग" टाइप करना, सभी टैगों को भी सूचीबद्ध करता है।


हाल ही में (" कैसे जीआईटी टैग्स को सॉर्ट करने के लिए? ", जीआईटी 2.0+ के लिए)

git tag --sort=<type>

एक विशिष्ट क्रम में क्रमबद्ध करें।

समर्थित प्रकार है:

  • " refname" (लेक्सिकोग्राफिक ऑर्डर),
  • " version:refnameया" या " v:refname(टैग नामों को संस्करणों के रूप में माना जाता है)।

Prepend "-" क्रमबद्ध क्रम को उल्टा करने के लिए।


दोनों को सूचीबद्ध करता है:

  • एनोटेट टैग : Git डेटाबेस में संग्रहीत पूर्ण ऑब्जेक्ट। वे जाँच कर रहे हैं; टैगर नाम, ई-मेल और दिनांक शामिल करें; एक टैगिंग संदेश है; और GNU प्राइवेसी गार्ड (GPG) के साथ हस्ताक्षरित और सत्यापित किया जा सकता है।
  • हल्के टैग : एक मौजूदा प्रतिबद्ध करने के लिए सरल सूचक

नोट: हल्के तैयार टैग को टैग करने पर गिट तैयार लेख

तर्कों के बिना, git टैग एक "लाइटवेट" टैग बनाता है जो मूल रूप से एक शाखा है जो कभी नहीं चलती है।
हल्के टैग अभी भी उपयोगी हैं, शायद एक ज्ञात अच्छे (या बुरे) संस्करण को चिह्नित करने के लिए, या भविष्य में उपयोग करने के लिए आपके द्वारा किए जा सकने वाले कमिट्स का एक गुच्छा।
फिर भी, आप शायद इस प्रकार के टैग को आगे नहीं बढ़ाना चाहते हैं

आम तौर पर, आप कम से कम -ए-ऑप्शन पास करना चाहते हैं एक अहस्ताक्षरित टैग बनाने के लिए, या -s या -u विकल्पों के माध्यम से अपनी GPG कुंजी के साथ टैग पर हस्ताक्षर करें।


कहा जा रहा है कि, चार्ल्स बेली बताते हैं कि ' git tag -m "..."' वास्तव में एक उचित (अहस्ताक्षरित) टैग (विकल्प ' -a') का अर्थ है , न कि एक हल्का। तो आप अपने शुरुआती कमांड के साथ अच्छे हैं।


यह इससे अलग है:

git show-ref --tags -d

कौन से टैग उनके कमिट के साथ सूचीबद्ध होते हैं (" Git टैग सूची, प्रदर्शन प्रतिबद्ध sha1 हैश देखें ")। एनोटेट टैग ऑब्जेक्ट (जिसमें उनकी स्वयं की प्रतिबद्ध SHA1 है) को निष्क्रिय करने के लिए
नोट करें -dऔर वास्तविक टैग की गई कमिटी प्रदर्शित करें।

इसी तरह, git show --name-only <aTag>टैग और संबंधित प्रतिबद्धता को सूचीबद्ध करेगा।


6
यह शायद जोड़ने योग्य है कि -m या -F का तात्पर्य -a (यदि गैर -a, -s या -u की आपूर्ति स्पष्ट रूप से की जाती है। आपके पास 'उचित' टैग ऑब्जेक्ट बनाए बिना टैग संदेश नहीं हो सकता है।
CB Bailey

1
स्वयं पर ध्यान दें: इस उत्थान के साथ, मैं flow००००० (अगस्त ६, २०१ this) तक पहुँचने के एक साल और एक महीने बाद, स्टैक ओवरफ्लो पर Aug००००० (अगस्त ३१, २०१ this) पास करता हूं ।
VonC

190

मेरे द्वारा पसंद किए जाने वाले टैग सूचीबद्ध करने के लिए:

git tag -n

-nझंडा टैग के साथ एनोटेशन संदेश की पहली पंक्ति को प्रदर्शित करता है, या यदि टैग एनोटेट नहीं है पहला संदेश लाइन के लिए प्रतिबद्ध।

आप git tag -n5एनोटेशन की पहली 5 लाइनें दिखाने के लिए भी कर सकते हैं ।


48

इसके अलावा git show-ref, बल्कि उपयोगी है ताकि आप सीधे संबद्ध कर सकते हैं कि टैग संवाददाता के साथ प्रतिबद्ध :

$ git tag
osgeolive-6.5
v8.0
...

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...

1
मर्क्यूरियल का उपयोग करने के कारण hg tagsमुझे वह पसंद है git show-refजो मुझे टैग और संशोधन देता है।
जस्टिन


15

बनाने की कोशिश करें git tagकि यह पर्याप्त है, तो बनाने की कोशिश नहीं होना चाहिए git fetchतो git tag


4
मुझे लगता है कि उसका क्या मतलब है: रनिंग git tagकमांड पर्याप्त होना चाहिए यदि आप उपलब्ध टैग की सूची देखना चाहते हैं। यदि आपको लगता है कि आप रिमोट पर मौजूद हो सकते हैं, तो आपके स्थानीय टैग रिमोट के साथ सिंक में नहीं हो सकते हैं। इस मामले में, नवीनतम रेफ / हेड को पहले रिमोट से प्राप्त करें git fetch, उसके बाद वास्तविक git tag। मैं आम तौर पर इस तरह से एक-लाइनर चलाता हूं: $ git fetch -p && git tagबस यह सुनिश्चित करने के लिए कि मैं नवीनतम और सबसे बड़ा देख रहा हूं।
डेमिक्स

11

Git में उपलब्ध टैग को सूचीबद्ध करना सीधा है। बस टाइप करें git tag(वैकल्पिक -lया --list) के साथ।

$ git tag
v5.5
v6.5

आप उन टैग्स को भी खोज सकते हैं जो एक विशेष पैटर्न से मेल खाते हैं।

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

गिट रिपॉजिटरी पर नवीनतम टैग प्राप्त करना

कमांड सबसे हालिया टैग ढूंढता है जो एक कमिट से पहुंच योग्य है। यदि टैग कमिट को इंगित करता है, तो केवल टैग दिखाया गया है। अन्यथा, यह टैग किए गए ऑब्जेक्ट के शीर्ष पर अतिरिक्त कमिट्स की संख्या और सबसे हाल की कमेटी के संक्षिप्त ऑब्जेक्ट नाम के साथ टैग नाम को प्रत्यय करता है।

git describe

--abbrevसेट के साथ 0, कमांड का उपयोग tagnameबिना किसी प्रत्यय के निकटतम खोजने के लिए किया जा सकता है :

git describe --abbrev=0

अन्य उदाहरण:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

स्थानीय git टैग को कैसे प्रींट करें जो रिमोट पर मौजूद नहीं है

इसे सरल करने के लिए, यदि आप कुछ ऐसा करने की कोशिश कर रहे हैं, तो git fetch -p -tयह git संस्करण के साथ काम करना शुरू नहीं करेगा 1.9.4

हालाँकि, एक सरल समाधान है जो अभी भी नवीनतम संस्करणों में काम करता है:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags

रेव-सूची संबंधित आदेश मुझे एक सूची दी है, लेकिन एक त्रुटि में समाप्त हो गया:v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
not2qubit

10

मेरे द्वारा उपयोग किए गए नवीनतम उपलब्ध टैग के बारे में विवरण देखने के लिए:

git show `git describe` --pretty=fuller

6

यदि आप स्थानीय रूप से टैग नाम की जांच करना चाहते हैं, तो आपको उस पथ पर जाना होगा जहां आपने टैग (स्थानीय पथ) बनाया है। मतलब जहां आपने अपनी वस्तुएं रखी हैं। फिर कमांड टाइप करें:

git show --name-only <tagname>

यह उस टैग नाम के तहत सभी ऑब्जेक्ट दिखाएगा। मैं टेराडाटा में काम कर रहा हूं और ऑब्जेक्ट का मतलब व्यू, टेबल आदि है


4

आप सभी मौजूदा टैग सूचीबद्ध कर सकते हैं git tagया आप उस सूची को फ़िल्टर कर सकते हैं git tag -l 'v1.1.*', जहां *वाइल्डकार्ड के रूप में कार्य किया जाता है। इसके साथ चिह्नित टैग की सूची वापस आ जाएगी v1.1

आप देखेंगे कि जब आप कॉल git tagकरते हैं तो आपको अपने एनोटेशन की सामग्री देखने को नहीं मिलती है। उन्हें पूर्वावलोकन करने के लिए आपको -nअपने आदेश में जोड़ना होगा git tag -n2:।

$ git tag -l -n2

v1.0 रिलीज संस्करण 1.0

v1.1 रिलीज संस्करण 1.1

कमांड सभी मौजूदा टैगों को उनके टैग संदेश की अधिकतम 3 पंक्तियों के साथ सूचीबद्ध करता है। डिफ़ॉल्ट रूप से -nकेवल पहली पंक्ति दिखाता है। अधिक जानकारी के लिए इस टैग से संबंधित लेख को भी देखना सुनिश्चित करें ।


0

एक GUI के लिए ऐसा करने के लिए मैंने पाया है कि 'gitk' नामित विचारों का समर्थन करता है। कमिट चुनने के लिए विचारों के कई विकल्प हैं। एक आसान एक "ऑल टैग्स" को चुनने के लिए एक बॉक्स है। मुझे टैग देखने के लिए काम करने लगता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.