2015-07-30 2 views
6

मैं चलाकर कुछ टैग नष्ट कर दिया है:Git टैग दिखा रहे हैं, भले ही मैं उन्हें नष्ट कर दिया

  1. git tag -d TAGNAME
  2. git push origin :refs/tags/TAGNAME

उसके बाद मैं चलाने के लिए टीम के सभी सदस्यों से पूछा:

  1. git tag -d $(git tag) - सभी स्थानीय टैग को हटाने के लिए
  2. git fetch --tags - रिमोट से वर्तमान टैग पुनर्प्राप्त करने के लिए।

समस्या यह है कि अब और फिर मैं पुराने टैग को फिर से दिख रहा हूं। मुझे संदेह है कि किसी के पास अभी भी कुछ पुराने टैग हैं और मैंने इसे हटाए जाने से पहले हटाया या खींच नहीं लिया।

क्या टैग को पूरी तरह से हटाने का कोई तरीका है?

उदाहरण के लिए - पुराने टैग को हटाने वाली प्रतिबद्धता बनाने के लिए और इससे पहले कि उपयोगकर्ता धक्का दे सकें, उन्हें उस प्रतिबद्धता को खींचना होगा और इसलिए यह उनके टैग बदल देगा। क्या यह संभव है?

उत्तर

4

जब आप दूरस्थ शाखाओं को हटाते हैं, तो आपको कार्यरत प्रतिलिपि से हटाई गई शाखाओं को पूरी तरह से निकालने के लिए git remote prune origin होना चाहिए।

चूंकि टैग शाखाओं के समान ही हैं, मुझे लगता है कि आपको यहां भी छेड़छाड़ की आवश्यकता है।

git fetch भी --prune पैरामीटर जानता है, तो या तो

git remote prune origin 

या

git fetch --prune 

चाल करना चाहिए।

यह एक अतिरिक्त सुरक्षा उपाय है: fetch केवल दूरस्थ शाखाओं को ज्ञात करता है और नए परिचय देता है लेकिन जब तक --prune अनुरोध नहीं किया जाता है तब तक उन्हें कभी हटा नहीं जाता है।

संबंधित मुद्दे