2015-08-20 5 views
5

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

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

git show <tagname> का उपयोग करके, मैं केवल देख सकता हूं कि पहली बार टैग कौन बनाते हैं, लेकिन मैं कैसे टैग को फिर से धक्का दे सकता हूं?

+3

गिट स्वयं ही उस जानकारी को संग्रहीत नहीं करता है, लेकिन कुछ होस्टिंग सेवाएं (जैसे कि गिटहब) करते हैं। – Jubobs

+1

आप धक्का पर इसे हटाने के लिए सर्वर साइड हुक सेट करने में सक्षम हो सकते हैं, लेकिन फिर, यह हर बार तब से हर बार धक्का देने जा रहा है जब तक कि वे इसे अपने स्थानीय रिपोज़ से साफ़ न करें। ओटीओएच, आप इसे समझने के लिए इसका उपयोग कर सकते हैं कि इसे कौन दबा रहा है और इसे स्थानीय रूप से हटाने के लिए उन्हें एक चेतावनी भेजें। – DavidN

+0

रेफरी: http://stackoverflow.com/questions/5809910/how-do-i-react-to-new-tags-in-git-hooks –

उत्तर

1

भले ही आपने टैग ऑब्जेक्ट में टैगर को सहेजने वाले टैग्स को एनोटेट किया हो, फिर भी आप यह नहीं देख सकते कि इसे तब तक धक्का दिया गया है जब तक कि आप इसे धक्का देने के समय सर्वर पर सहेजते नहीं हैं। गिटहब/गिटलैब एंटरप्राइज़ संस्करण आपके लिए यह प्रदान कर सकते हैं।

हालांकि, आपकी मूल समस्या यह है कि हर किसी को अपनी स्थानीय मशीनों पर उस टैग को हटाने की ज़रूरत है, इसलिए इसे वापस धक्का नहीं दिया जाता है।

लोग स्थानीय केवल टैग नहीं है, तो वे चल सकें सभी स्थानीय टैग जो दूरदराज के भंडार में नहीं पाए जाते हैं हटाने के लिए निम्न:

# Delete all local tags 
git tag -l | xargs git tag -d 
# Fetch remote tags 
git fetch -t 

मुझे आशा है कि मदद करता है!

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