2012-05-25 23 views
15

मुझे पता है कि this जैसे प्रश्न हैं, लेकिन यह मैं नहीं पूछ रहा हूं।"गिट चेकआउट टैग-नाम" बनाम "गिट रीसेट - हार्ड टैग-नाम"

मुझे यह भी पता है कि:

git checkout tag-name:

  • शाखा से आप अलग हो जाता है। (अर्थात चाल HEAD सूचक, BRANCH सूचक रहता है)

git reset --hard tag-name:

  • शाखा से आप को अलग नहीं करता है, लेकिन बनने के लिए "झूलते" पिछले प्रतिबद्ध बनाता है। (अर्थात दोनों HEAD और BRANCH संकेत ले जाता है)

मुझे आश्चर्य है कि जो एक एक टैग को अद्यतन करने के लिए और अधिक समझ में आता है, यानि कि एक उत्पादन reseted या जाँच की जानी चाहिए। मुझे पता है कि एक कचरा कलेक्टर भाग सकता है, लटकती हुई चीजों को हटा सकता है, लेकिन फिर, अगर किसी टैग को अपडेट करने की प्रक्रिया से पहले उत्पादन हमेशा "खींचा" जाता है, तो मुझे वहां कुछ भी बुरा नहीं लगता है।

चाहिए reset या checkout के साथ एक टैग, यह देखते हुए कि एक pull हमेशा इस अद्यतन कॉल करने से पहले किया जाता है करने के लिए एक उत्पादन अद्यतन?

उत्तर

14

मुझे आश्चर्य है कि जो एक एक टैग

आपका उत्पादन स्थापित एक टैग बाहर की जाँच की जानी चाहिए करने के लिए अद्यतन करने के लिए और अधिक समझ में आता है।

इस बारे में सोचें: आपका उत्पादन इंस्टॉल केवल पढ़ने के लिए है। git reset --hard tag-name वर्तमान में चेक आउट की गई शाखा को संशोधित करेगा।

वैकल्पिक रूप से

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

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