मैं git tag
टाइप करें और इसे अपने वर्तमान टैग को सूचीबद्ध करता है:मैं कैसे बता सकता हूं कि दिया गया गिट टैग एनोटेटेड या लाइटवेट है या नहीं?
1.2.3
1.2.4
मैं कैसे निर्धारित कर सकते हैं जो इनमें से टिप्पणी की जाती है, और जो हल्के है?
मैं git tag
टाइप करें और इसे अपने वर्तमान टैग को सूचीबद्ध करता है:मैं कैसे बता सकता हूं कि दिया गया गिट टैग एनोटेटेड या लाइटवेट है या नहीं?
1.2.3
1.2.4
मैं कैसे निर्धारित कर सकते हैं जो इनमें से टिप्पणी की जाती है, और जो हल्के है?
git for-each-ref
आपको बताता है कि डिफ़ॉल्ट रूप से प्रत्येक रेफरी क्या है, इसकी आईडी और उसके प्रकार। इसे केवल टैग तक सीमित करने के लिए, git for-each-ref refs/tags
करें।
बिल्कुल सही, धन्यवाद! –
जब मैंने यह कोशिश की, [आउटपुट] (http://imgur.com/b00mvjr) प्रत्येक टैग को 'प्रतिबद्ध' या 'टैग' के रूप में सूचीबद्ध करता है। मुझे लगता है कि क्रमशः हल्के और एनोटेटेड टैग इंगित करते हैं? –
@ स्टेवेनवस्सेलारो यह सही है, एक हल्का टैग सिर्फ स्थानीय रेफरी "रेफरी/टैग" शुरू होता है, यह कुछ भी हो सकता है। ऑब्जेक्ट डीबी में एक टैग सिर्फ एक नाम से अधिक है और किसी अन्य ऑब्जेक्ट की तरह भेज दिया जा सकता है। गिट ऑब्जेक्ट डीबी में प्रत्येक टैग के लिए स्थानीय रेफ बनाता है, इसलिए भेद कुछ हद तक धुंधला हो जाता है, आम तौर पर किसी को भी वर्कफ़्लो की प्रोजेक्ट के लिए सेट अप करने के बाद किसी को भी परवाह नहीं करना पड़ता है। – jthill
git describe
https://git-scm.com/docs/git-describe
डिफ़ॉल्ट रूप से उपयोग करने का प्रयास (--all बिना या --tags) Git केवल एनोटेट शो टैग का वर्णन करें।
टैग का नाम प्राप्त करें (foo
कहें) और फिर git cat-file -t foo
करें। यदि यह एक एनोटेटेड टैग है, तो cat-file
आपको बताएगा कि यह एक "टैग" है। यदि यह एक साधारण टैग है, cat-file
आपको बताएगा कि यह "प्रतिबद्ध" है।
अद्यतन: जैसा कि ऑक्सीमोरन ने अपनी टिप्पणी में कहा था, git show
भी काम करता है लेकिन यह आपको इस तरह के टैग की तुलना में अधिक जानकारी देता है।
git show-ref -d --tags
कमांड प्रकार यह करता है, चूंकि हल्के टैग आउटपुट में एक बार होते हैं, और एनोटेटेड टैग दो बार होते हैं। साथ ही, केवल एनोटेटेड टैग्स में आउटपुट में "^ {}" ड्रेफरेंस ऑपरेटर शामिल है।
588e9261795ec6dda4bd0a881cf1a86848e3d975 refs/tags/1.2.3
7fe2caaed1b02bb6dae0305c5c0f2592e7080a7a refs/tags/1.2.4
588e9261795ec6dda4bd0a881cf1a86848e3d975 refs/tags/1.2.4^{}
और वह उत्पादन की तुलना में यूनिक्स तरह, SED, कटौती के साथ मालिश किया जा सकता है, और uniq उत्पादन अधिक पठनीय बनाने के लिए आदेश: (मेरे सवाल से)
git show-ref -d --tags |
cut -b 42- | # to remove the commit-id
sort |
sed 's/\^{}//' | # remove ^{} markings
uniq -c | # count identical lines
sed 's/2\ refs\/tags\// a /' | # 2 identicals = annotated
sed 's/1\ refs\/tags\//lw /'
अपने मूल रेपो के लिए यह आउटपुट इस:
lw 1.2.3
a 1.2.4
(जैसे, 1.2.3 गया था "हल्के" और "1.2.4" एनोटेट गया था)।
क्या आपके लिए कुछ भी गिट टैग-एन' करता है? – Oxymoron
एक टैग एनोटेशन एक प्रतिबद्ध संदेश नहीं है। आप इसे गिट-लॉग (1) के साथ नहीं देख सकते हैं; आपको गिट-शो (1) – Oxymoron
गिट टैग का उपयोग करने की आवश्यकता है -n दिलचस्प था! लेकिन यह मेरी विशिष्ट समस्या के लिए बुलेटप्रूफ नहीं है। –