रिमोट टैग कैसे हटाएं?


3414

आप एक Git टैग को कैसे हटाते हैं जिसे पहले ही धकेल दिया गया है?

जवाबों:


5743

आपको दूरस्थ टैग नाम के लिए 'खाली' संदर्भ को धकेलना होगा:

git push origin :tagname

या, अधिक स्पष्ट रूप से , --deleteविकल्प का उपयोग करें (या -dयदि आपका git संस्करण 1.8.0 से पुराना है):

git push --delete origin tagname

ध्यान दें कि git में टैग नेमस्पेस और ब्रांच नेमस्पेस है ताकि आप एक ब्रांच के लिए और एक टैग के लिए एक ही नाम का उपयोग कर सकें। यदि आप यह सुनिश्चित करना चाहते हैं कि आप टैग के बजाय गलती से शाखा को हटा नहीं सकते हैं, तो आप पूर्ण रेफ निर्दिष्ट कर सकते हैं जो कभी भी शाखा को नहीं हटाएगा:

git push origin :refs/tags/tagname

यदि आपको स्थानीय टैग हटाने की आवश्यकता है, तो उपयोग करें:

git tag --delete tagname

पृष्ठभूमि

एक दूरस्थ रिपॉजिटरी में एक शाखा, टैग या अन्य रेफरी को पुश करना "जिसमें रेपो, क्या स्रोत, क्या गंतव्य है?" निर्दिष्ट करना शामिल है।

git push remote-repo source-ref:destination-ref

एक वास्तविक विश्व उदाहरण जहां आप अपनी मास्टर शाखा को मूल की मास्टर शाखा में धकेलते हैं:

git push origin refs/heads/master:refs/heads/master

डिफ़ॉल्ट रास्तों के कारण, इसे छोटा किया जा सकता है:

git push origin master:master

टैग उसी तरह काम करते हैं:

git push origin refs/tags/release-1.0:refs/tags/release-1.0

जिसे छोटा भी किया जा सकता है:

git push origin release-1.0:release-1.0

स्रोत रेफ (कर्नल से पहले का हिस्सा) को छोड़ कर, आप दूरस्थ छोर पर रेफ को हटाते हुए गंतव्य के लिए 'कुछ नहीं' को धक्का देते हैं।


187
+1 प्रश्न का उत्तर देने और सामान्य मामले की व्याख्या करने के लिए दोनों, और नायाब वाक्यविन्यास के अर्थ का विवरण देने के लिए
पीटर होस्ट

77
और अगर किसी को आश्चर्य होता है कि आप एक समय में कितने टैग को हटा सकते हैं, तो आप उन्हें सफेद स्थान, उदाहरण के लिए सरल सूची में डाल सकते हैं git push --delete origin tag1 tag2। वही स्थानीय टैग हटाने के लिए मान्य हैgit tag -d tag1 tag2
dVaffection

8
यदि टैग नाम शाखा नाम से टकराता है, तो आप अपनी शाखा को समाप्त कर सकते हैं। हा-हा। दूसरा उत्तर देखें - यह अधिक पारिस्थितिक है
जुबा

1
@EmmaHe A tagकेवल एक ही प्रतिबद्ध से जुड़ा है। उसके कारण शाखा का नाम अप्रासंगिक है।
cb2

1
यह जानना भी दिलचस्प है कि git tag -d `git tag`सभी स्थानीय टैग हटा दिए जाएंगे। समान रूप से git push --delete origin `git tag`यह मानने के लिए लागू होता है कि आपने दूरस्थ टैग को स्थानीय रूप से खींचा है। यह एक परीक्षण वातावरण में आसान था।
DarkFranX

382

एक और सीधा रास्ता है

git push --delete origin YOUR_TAG_NAME

इस स्थिति में IMO उपसर्ग बृहदान्त्र सिंटैक्स थोड़ा अजीब है


4
मुझे लगता है कि यह उचित तरीका है ... अन्य वाक्यविन्यास मुझे हैक की तरह अधिक दिखते हैं।
लुइगी आर। विगिग्नो

11
हां, यह सरल है और काम करता है। हालांकि मैं यह निर्दिष्ट करके उत्तर दूंगा कि चर भाग क्या है git push --delete origin "TAGNAME":, जहां TAGNAME मूल टैग का नाम है।
तेमू लीस्टी

12
यह काम। एक जोड़: यदि आपके पास एक शाखा और एक ही नाम वाला टैग है, तो आप tagयह सुनिश्चित करने के लिए अपने टैग नाम से पहले शब्द डाल सकते हैं कि आपको टैग मिल सकता है, शाखा नहीं।
andypaxo

9
@andypaxo क्या आदेश लेता है refspecs है, सही तरीके के साथ टैग लगाकर किया जाएगा refs/tags/, इस तरह: refs/tags/v2.3.1
p3lim

मेरे पास 'खराब' टैग नाम किसी भी तरह रिमोट सर्वर पर बनाया गया था, जिसमें विशेष वर्ण थे, इसलिए मैं इसके साथ सिंक नहीं कर सकता, इसलिए बस इसे आपके सुझाव के साथ हटा दिया गया: git push --delete origin "service - <default> - 151 ", इसे इंटेलीज के साथ नहीं हटा सकते हैं, न कि स्ट्रैस के साथ, सोर्सट्री के साथ नहीं। धन्यवाद !
दिमित्री अल्गाज़िन

215

यदि आपके पास v0.1.0हटाने के लिए एक रिमोट टैग है, और आपका रिमोट है origin, तो बस:

git push origin :refs/tags/v0.1.0

यदि आपको स्थानीय स्तर पर टैग हटाने की आवश्यकता है:

git tag -d v0.1.0

हटाने के लिए गिट के असामान्य वाक्यविन्यास के स्पष्टीकरण के लिए एडम फ्रेंको का जवाब देखें :


2
यह जिगित् के साथ भी काम करता है : टैग आशुलिपि जिट के साथ काम नहीं करता है
रेनोप

मुझे मिल गया fatal: remote part of refspec is not a valid name in :/refs/tags/0.0.1...?
चैम एलियाह सेप

3
@ChaimEliyah आपके पास एक प्रमुख स्लैश है, शायद यही आपकी समस्या है
जोफ्री

5
बेहतर जवाब, क्योंकि यह भी काम करता है यदि आपके पास एक शाखा और एक टैग है जिसे समान कहा जाता है।
एरिक ए। ब्रैंडस्टैडमेन

बस :tagnameरिमोट डिलीट के लिए काम करना चाहिए।
एक्यूमेनस

106

सभी स्थानीय टैग हटाएं और दूरस्थ टैग की सूची प्राप्त करें :

git tag -l | xargs git tag -d
git fetch

सभी दूरस्थ टैग निकालें

git tag -l | xargs -n 1 git push --delete origin

स्थानीय टैग्स को साफ करें

git tag -l | xargs git tag -d

2
स्थानीय और दूरस्थ रिपॉजिट से सभी टैग कैसे निकालें। यह वही है जिसकी मुझे तलाश थी, धन्यवाद!
जॉर्ज ऑरपिनल

git लाने, रिमोट को डिलीट करने और फिर स्थानीय लोगों को साफ करने, खूबसूरती से काम करने के लिए!
डिएगोब्राउरो

धीमी गति से, लेकिन सबसे सीधी
लुसेंट फॉक्स

33

दूरस्थ रिपॉजिटरी से टैग हटाने के लिए:

git push --delete origin TAGNAME

आप स्थानीय रूप से टैग हटाना चाहते हैं:

git tag -d TAGNAME

दोनों को करने के लिए एक पंक्ति:git push --delete origin TAGNAME && git tag -d TAGNAME
sakurashinken

25

अपने टर्मिनल से, यह करें:

git fetch
git tags
git tag -d {tag-name}
git push origin :refs/tags/{tag-name}

अब Github.com पर जाएं और ताज़ा करें, वे गायब हो गए।


3
git टैग नहीं टैग
DSF

23
git tag -d your_tag_name
git push origin :refs/tags/your_tag_name
  1. पहली पंक्ति, स्थानीय रेपो your_tag_nameसे हटाती है।
  2. दूसरी लाइन, रिमोट रेपो your_tag_nameसे हटाती है।
  3. प्रेस ड्राफ़्ट छोड़ें अपने GitHub में बटन विज्ञप्ति अनुभाग।

यहां छवि विवरण दर्ज करें


2
हालांकि यह आदेश प्रश्न का उत्तर दे सकता है, लेकिन यह कोड क्यों और / या इस बारे में अतिरिक्त संदर्भ प्रदान करता है कि प्रश्न इसके दीर्घकालिक मूल्य में सुधार करता है। उत्तर कैसे दें
पोपो

20

स्थानीय टैग हटाएं '12345'

git tag -d 12345

दूरस्थ टैग '12345' हटाएं (जैसे; GitHub संस्करण भी)

git push origin :refs/tags/12345

वैकल्पिक दृष्टिकोण

git push --delete origin tagName
git tag -d tagName

यहां छवि विवरण दर्ज करें


15

बस ध्यान दें कि, यदि आपके पास रिमोट टैग के रूप में नामित एक दूरस्थ शाखा है, तो ये आदेश अस्पष्ट हैं:

git push origin :tagname
git push --delete origin tagname

इसलिए आपको टैग हटाने के लिए इस कमांड का उपयोग करना चाहिए:

git push origin :refs/tags/<tag>

और यह एक शाखा को हटाने के लिए है:

git push origin :refs/heads/<branch>

यदि नहीं, तो आपको इस तरह एक त्रुटि मिलेगी:

error: dst refspec <tagname> matches more than one.
error: failed to push some refs to '<repo>'

संक्षिप्त और संक्षिप्त। मेगनझोऊ के साथ यह पोस्ट इस बात का जवाब देने के रूप में सामने आया कि हम मुद्दे क्यों थे, ब्रांचनाम और टैग्नैम समान थे। मैंने स्थानीय टैग हटा दिया और धक्का दिया: refs / टैग और सब अच्छा था।
rwheadon

12

हजारों दूरस्थ टैग के लिए 100x तेज़ विधि तक

11,000 से अधिक टैग हटाने की आवश्यकता के दौरान इन उत्तरों को पढ़ने के बाद, मैंने इन विधियों को भरोसा करना या xargsबहुत लंबा लेना सीखा , जब तक कि आपके पास जलाने के लिए घंटे न हों।

स्ट्रगल, मैंने दो और तेज़ तरीके ढूंढे। दोनों के लिए, उन टैगों की सूची बनाना git tagया शुरू करना, git ls-remote --tagsजिन्हें आप रिमोट पर हटाना चाहते हैं। नीचे दिए गए उदाहरणों में आप sorting_proccessing_etcकिसी भी grepआईएनजी, sortइंजी, tailआईएनजी या headआईएनजी को बदल सकते हैं ( जैसे grep -P "my_regex" | sort | head -n -200 आदि )।


यह पहला तरीका अब तक का सबसे तेज, शायद उपयोग करने की तुलना में 20 से 100 गुना तेज है xargs, और एक समय में कम से कम कई हजार टैग के साथ काम करता है ।

git push origin $(< git tag | sorting_processing_etc \
| sed -e 's/^/:/' | paste -sd " ") #note exclude "<" for zsh

यह कैसे काम करता है? टैग की सामान्य, लाइन-अलग-अलग सूची को अंतरिक्ष-अलग किए गए टैगों की एक पंक्ति में बदल दिया जाता है, प्रत्येक को :इसके साथ जोड़ा जाता है। । ।

tag1   becomes
tag2   ======>  :tag1 :tag2 :tag3
tag3

git pushइस प्रारूप टैग के साथ उपयोग करने से प्रत्येक दूरस्थ रेफरी में कुछ भी नहीं धकेलता है , इसे मिटा देता है (इस तरह से धक्का देने का सामान्य प्रारूप है local_ref_path:remote_ref_path)।

विधि दो को अलग-अलग उत्तर के रूप में इसी पृष्ठ पर कहीं और तोड़ दिया गया है


इन दोनों तरीकों के बाद, आप शायद अपने स्थानीय टैग भी हटाना चाहते हैं। यह बहुत तेज़ है इसलिए हम उपयोग करने के लिए वापस जा सकते हैं xargsऔर git tag -d, जो पर्याप्त है।

git tag | sorting_processing_etc | xargs -L 1 git tag -d

या रिमोट डिलीट के समान:

git tag -d $(< git tag | sorting_processing_etc | paste -sd " ")

आपको इसे कुछ अलग उत्तरों में विभाजित करना चाहिए। एक लाइन पर कई टैग के साथ जवाब, एक शक के बिना, थोक टैग हटाने के लिए सही जवाब है। वास्तव में इस जानकारी को लगभग कहीं और खोजना थोड़ा मुश्किल है। यह जानते हुए भी कि मैं जो खोज रहा हूं, उसके पास एक कठिन समय है जो इसे git help page में ढूंढ रहा है :) तो आपके लिए kudos और इसे सही उत्तर के रूप में हाइलाइट करें, और GitHub API को एक अलग स्थान पर ले जाएं। और अंत में, थोक में, स्थानीय रूप से हटाए गए टैग को हटाकर, अंतरिक्ष सीमांकित टैग (कॉलन से छुटकारा
पाएं

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

क्षमा करें, मेरा तात्पर्य यह था कि आप दूरस्थ टैग हटाने के लिए क्या कर रहे हैं, स्थानीय टैग हटाने के साथ काम करता है, एक ही बार में पूरी सूची प्रदान करता है। :) बस git पुश ओरिजिन के बजाय: tag1: tag2 इत्यादि आप git tag --delete tag1 tag2 tag3 करेंगे जिस तरह से आप कुल सफाई कर सकते हैं। फिर, एक टन धन्यवाद!
क्यूबा

11

यदि आप SourceTree - एक महान Git GUI का उपयोग करते हैं - तो आप आसानी से कमांड लाइन के बिना निम्न कार्य कर सकते हैं:

  1. SourceTree में अपनी रिपॉजिटरी खोलें
  2. बाईं ओर "टैग" टैब का चयन करें और उसका विस्तार करें
  3. उस टैग पर राइट-क्लिक करें जिसे आप हटाना चाहते हैं
  4. "अपना START_TAG हटाएं" चुनें
  5. सत्यापन विंडो में, "रिमूव से टैग हटाएं" चुनें

Your_TAG_NAME को अब आपकी स्थानीय रिपॉजिटरी से निकाल दिया जाएगा और सभी रीमोट - यह GitHub, BitBucket, या जहाँ भी आपने उस रिपॉजिटरी के लिए रिमोट के रूप में सूचीबद्ध किया है, हो सकता है।

इसके अलावा, यदि आपने स्थानीय रूप से कोई टैग हटा दिया है, लेकिन दूरस्थ उत्पत्ति पर नहीं, और आप इसे हर जगह हटाना चाहते हैं, तो बस एक नया टैग बनाएं जिसमें समान नाम हो और मूल के समान प्रतिबद्ध हो। फिर, हर जगह हटाने के लिए ऊपर दिए गए चरणों को दोहराएं।


एक जादू की तरह काम करता है। धन्यवाद!
Native_Mobile_Arch_Dev 21

9

यदि आपने release01Git रिपॉजिटरी में एक टैग बनाया है, तो आप निम्न कार्य करके इसे अपनी रिपॉजिटरी से निकाल देंगे:

git tag -d release01 
git push origin :refs/tags/release01 

एक व्यापारिक भंडार से हटाने के लिए:

hg tag --remove featurefoo

कृपया संदर्भ https://confluence.atlassian.com/pages/viewpage.action?pageId=282175551 पर देखें


7

यदि आप PowerShell का उपयोग कर रहे हैं, और आप उनमें से एक गुच्छा हटाना चाहते हैं:

# Local tags:
git tag -l | foreach { git tag -d $_ }

# Remote tags:
git tag -l | foreach { git push --delete origin $_ }

बेशक, आप उन्हें हटाने से पहले फ़िल्टर भी कर सकते हैं:

git tag -l | Where-Object { $_ -like "build-*" } | foreach { git tag -d $_ }

यह सहज और अच्छा रेक्सएक्सप उदाहरण था। धन्यवाद अच्छा साहब
यूनुस

7

जैसा कि @ क्यूबा ने सुझाव दिया था, मैंने इस उत्तर को अपने मूल से अलग कर दिया है:

यहाँ एक विधि है जो कई बार की तुलना में तेज़ है xargsऔर ट्विकिंग के साथ और अधिक पैमाने पर हो सकती है। यह जीथब एपीआई , एक व्यक्तिगत एक्सेस टोकन का उपयोग करता है , और उपयोगिता का लाभ उठाता है parallel

git tag | sorting_processing_etc | parallel --jobs 2 curl -i -X DELETE \ 
https://api.github.com/repos/My_Account/my_repo/git/refs/tags/{} -H 
\"authorization: token GIT_OAUTH_OR_PERSONAL_KEY_HERE\"  \
-H \"cache-control: no-cache\"`

parallelकई ऑपरेटिंग मोड हैं, लेकिन आम तौर पर किसी भी कमांड को आप इसे देते हैं, जबकि आप प्रक्रियाओं की संख्या पर सीमा निर्धारित करने की अनुमति देते हैं। आप --jobs 2तेजी से संचालन की अनुमति देने के लिए पैरामीटर को बदल सकते हैं , लेकिन मुझे गितुब की दर सीमाओं के साथ समस्या थी , जो वर्तमान में 5000 / घंटा है, लेकिन साथ ही साथ एक अनिर्दिष्ट अल्पकालिक सीमा भी है।


इसके बाद, आप शायद अपने स्थानीय टैग भी हटाना चाहते हैं। यह बहुत तेज़ है इसलिए हम उपयोग करने के लिए वापस जा सकते हैं xargsऔर git tag -d, जो पर्याप्त है।

git tag | sorting_processing_etc | xargs -L 1 git tag -d

यह स्वीकृत answe की तुलना में बहुत अधिक जटिल लगता है। क्या फायदा है?
TheUtherSide

2
यदि आपको कई हजार टैग हटाने की आवश्यकता है, तो गति 10-100 गुना तेज है
टोनीएच

स्पष्ट करने के लिए आपको धन्यवाद। ओपी ने एक टैग को हटाने के बारे में पूछा। मैं सोच भी नहीं सकता था कि कोई एक टैग के लिए इस दृष्टिकोण का उपयोग क्यों करेगा। शायद यह जवाब एक और सवाल के लिए बेहतर है जिसमें कई टैग हटाए गए हैं
TheUtherSide

मुझे नहीं लगता कि यह मौजूद है। मैं खुद को जवाब देने के लिए इसे बना सकता हूं। क्या आप यह सोचना चाहते हैं कि यह उचित है?
टोनी एचएच

1
मैं करता हूँ! मुझे लगता है कि यह वास्तव में यहाँ एक आम बात है।
द यूटरसाइड

6

दूसरे उत्तर बताते हैं कि इसे कैसे पूरा किया जाए, लेकिन आपको इसके परिणामों को ध्यान में रखना चाहिए क्योंकि यह एक दूरस्थ भंडार है।

जीएटी टैग मैन पेज, ऑन रीटैगिंग सेक्शन में, रिमोट रेपो के परिवर्तन के अन्य उपयोगकर्ताओं को सूचित करने के तरीके की एक अच्छी व्याख्या है। यहां तक ​​कि वे यह भी बताने के लिए एक उपयोगी घोषणा पत्र देते हैं कि दूसरों को आपके परिवर्तन कैसे प्राप्त करने चाहिए।


6

मैं उन सभी टैगों को हटाना चाहता था, जो एक पैटर्न से मेल खाते हैं, ताकि मैं उत्पादन टैग के सभी अंतिम महीनों को हटा सकूं, लेकिन यहां मुझे बहुत सफलता मिली:

डिलीट से सभी रिमोट टैग और एक्सक्लूसिव एक्सप्रेशन हटाएं

git tag -l | grep -P '^(?!Production-2017-0[89])' | xargs -n 1 git push --delete origin

सभी स्थानीय टैग हटाएं और अभिव्यक्ति को हटाएं हटाएं

git tag -l | grep -P '^(?!Production-2017-0[89])' | xargs git tag -d

5

स्थानीय और मूल दोनों स्थानों से दिए गए टैग को हटाने के लिए सरल स्क्रिप्ट। एक चेक के साथ यदि टैग वास्तव में मौजूद है।

if [ $(git tag -l "$1") ]; then
    git tag --delete  $1
    git push --delete origin $1

    echo done.
else
    echo tag named "$1" was not found
fi

कैसे इस्तेमाल करे:

  • शेल स्क्रिप्ट फ़ाइल (जैसे git-tag-purge.sh) और पेस्ट सामग्री बनाएँ।
  • इसे निष्पादित करने के लिए अपनी स्क्रिप्ट फ़ाइल को chmod करें।
  • स्क्रिप्ट को विश्व स्तर पर उपलब्ध कराएं
  • अपने git परियोजना के लिए सीडी
  • कॉल स्क्रिप्ट (उदाहरण के लिए)
    $> git-tag-purge.sh टैग_नाम
    )

4

किसी चीज के लिए बहुत काम की तरह लगता है xargsपहले से ही है। इस थ्रेड के माध्यम से पीछे मुड़कर, मैं xargsआपको उस सुस्ती का अनुमान लगा रहा हूं जो आपने अनुभव किया है क्योंकि मूल उत्तर का उपयोग xargs -n 1तब किया जाता है जब वास्तव में इसकी आवश्यकता नहीं थी।

यह इसके अलावा आपकी विधि के बराबर है xargs स्वचालित रूप से अधिकतम कमांड लाइन लंबाई से संबंधित है:

git tag | sorting_processing_etc | xargs git push --delete origin

xargsसमानांतर में भी प्रक्रियाओं को चला सकते हैं। विधि 2 के साथxargs :

git tag | sorting_processing_etc | xargs -P 5 -n 100 git push --delete origin

प्रत्येक प्रक्रिया में अधिकतम 100 तर्कों को संभालने के लिए उपर्युक्त अधिकतम 5 प्रक्रियाओं का उपयोग करता है। आप अपनी आवश्यकताओं के लिए सबसे अच्छा काम करने के लिए तर्कों के साथ प्रयोग कर सकते हैं।


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

4

यदि आपके पास # वर्ण से शुरू होने वाला एक टैग है , उदाहरण के लिए #ST002, आप पा सकते हैं कि आप सामान्य पैटर्न का उपयोग करके हटाने में असमर्थ हैं। अर्थात

git tag -d #STOO2

टैग हटाना नहीं होगा, लेकिन एक में यह लपेटकर स्ट्रिंग शाब्दिक इसलिए की तरह

git tag -d "#ST002" or git tag -d '#ST002'

वह इसे हटा दिया जाएगा। इसकी उम्मीद करने से किसी ऐसे व्यक्ति को मदद मिलेगी जिसने टैग नाम लिखने के लिए # का उपयोग करने की गलती की है ।


2

रिमोट के साथ खिलवाड़ किए बिना स्थानीय स्तर पर इसका परीक्षण करने के लिए यहां एक स्थानीय टेस्टकेस है:

~/p $ mkdir gittest    
~/p/git $ cd gittest/
~/p/gittest $ git init
Initialized empty Git repository in /Users/local_user/p/gittest/.git/
 ~/p/gittest $ touch testfile.txt
 ~/p/gittest $ git add testfile.txt
 ~/p/gittest $ git commit -m "initial commit"
[master (root-commit) 912ce0e] initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 testfile.txt
 ~/p/gittest $ git tag
 ~/p/gittest $ git tag -a testtag
 ~/p/gittest $ git tag
testtag
 ~/p/gittest $ git show-ref
912ce0e40635c90241fdab756dce7ea34938de57 refs/heads/master
b0a6c15cabb990e6d6c46f762891b63608d962f3 refs/tags/testtag
 ~/p/gittest $ cd ..
 ~/p $ mkdir gitbare
 ~/p $ cd gitbare
 ~/p/gitbare $ git init --bare
Initialized empty Git repository in /Users/local_user/p/gitbare/
 ~/p/gitbare $ cd ..
 ~/p $ cd gittest/
 ~/p/gittest $ git remote add origin /Users/local_user/p/gitbare
 ~/p/gittest $ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 215 bytes | 215.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /Users/local_user/p/gitbare
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
 ~/p/gittest $ git push origin testtag
Counting objects: 1, done.
Writing objects: 100% (1/1), 163 bytes | 163.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To /Users/local_user/p/gitbare
 * [new tag]         testtag -> testtag
 ~/p/gittest $ git show-ref
912ce0e40635c90241fdab756dce7ea34938de57 refs/heads/master
912ce0e40635c90241fdab756dce7ea34938de57 refs/remotes/origin/master
b0a6c15cabb990e6d6c46f762891b63608d962f3 refs/tags/testtag
 ~/p/gittest $ git push -d origin testtag
To /Users/local_user/p/gitbare
 - [deleted]         testtag
 ~/p/gittest    git tag -d testtag
Deleted tag 'testtag' (was b0a6c15)
 ~/p/gittest $ git show-ref
912ce0e40635c90241fdab756dce7ea34938de57 refs/heads/master
912ce0e40635c90241fdab756dce7ea34938de57 refs/remotes/origin/master
 ~/p/gittest

1

नमस्ते मैं केवल एक उपनाम साझा करना चाहता था जो एक ही काम करता है:

निम्नलिखित को अपने ~ / .gitconfig में जोड़ें

[alias]
    delete-tag = "!f() { \
            echo 'deleting tag' $1 'from remote/origin ausing command: git push --delete origin tagName;'; \
            git push --delete origin $1; \
            echo 'deleting tag' $1 'from local using command: git tag -d tagName;'; \
            git tag -d $1; \
        }; f"

उपयोग इस तरह दिखता है:

-->git delete-tag v1.0-DeleteMe
deleting tag v1.0-DeleteMe from remote/origin ausing command: git push --delete origin tagName;
To https://github.com/jsticha/pafs
 - [deleted]             v1.0-DeleteMe
deleting tag v1.0-DeleteMe from local using command: git tag -d tagName;
Deleted tag 'v1.0-DeleteMe' (was 300d3ef22)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.