2013-05-05 22 views
65

आप Git प्रवाह शाखाओं में मॉडल, का पालन करने का प्रयास करें documented here और tools here, आप कैसे इस स्थिति से निपटने चाहिए साथ:गिट-फ्लो के बाद आप पहले रिलीज़ के हॉटफिक्स को कैसे संभालेंगे?

आप एक 1.0 जारी है और एक 2.0 रिलीज कर दिया है। फिर आपको 1.0 के लिए हॉटफिक्स बनाने की आवश्यकता है। आप 1.0 टैग से हॉटफिक्स शाखा बनाते हैं और वहां फ़िक्स को लागू करते हैं। लेकिन फिर क्या?

आम तौर पर आप मास्टर के लिए विलय करेंगे और वहां 1.1 रिलीज टैग डालेंगे। लेकिन आप मास्टर पर 2.0 के बाद 1.1 को एक बिंदु में विलय नहीं कर सकते हैं।

मुझे लगता है कि आप रिलीज टैग को हॉटफिक्स शाखा पर डाल सकते हैं, लेकिन यह मास्टर के बगल में एक स्थायी शाखा बनाएगा जिसमें रिलीज टैग होगा। क्या यह सही तरीका है?

+0

[गिट-प्रवाह और एकाधिक समांतर रिलीज-शाखाओं के साथ मास्टर] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/16562339/git-flow-and-master-with-multiple-parallel-release-branches) [हालांकि दूसरा सवाल नया है, इसमें अधिक उपयोगी उत्तर हैं इसलिए मैंने इस प्रश्न को डुप्लिकेट के रूप में फ़्लैग किया है] – danio

उत्तर

47

ऐसा लगता है कि गिट प्रवाह में "समर्थन" शाखा की अवधारणा है। इसका उपयोग पहले रिलीज़ में हॉटफिक्स जोड़ने के लिए किया जाता है।

This thread has more information, इन उदाहरणों के साथ:

git checkout 6.0 
git checkout -b support/6.x 
git checkout -b hotfix/6.0.1 

... अपना समाधान करना होगा, फिर:

git checkout support/6.x 
git merge hotfix/6.0.1 
git branch -d hotfix/6.0.1 
git tag 6.0.1 

या git flow आदेशों

git flow support start 6.x 6.0 
git flow hotfix start 6.0.1 support/6.x 

का उपयोग कर ... परिवर्तन तो कर :

git flow hotfix finish 6.0.1 
+0

? इन समर्थन शाखाओं को रखें या कुछ अवधि के बाद उन्हें हटा दें –

+0

@EvanHu अच्छी तरह से, निश्चित रूप से उन्हें तब तक रखें जब तक आपके पास उस शाखा में उत्पादन हो। उसके बाद यह ऐतिहासिक रिकॉर्ड का मामला है। हो सकता है कि आप जानना चाहें कि हॉटफिक्स को कैसे ठीक किया जाना चाहिए यदि उन्हें कभी भी दोबारा शुरू किया जाना चाहिए। –

+0

किसी को हॉट फिक्स पर रिलीज़ करना चाहिए, है ना? हम वह कैसे कर सकते है? –

25

दिलचस्प सवाल! आपके द्वारा लिंक किया गया प्रवाह मानता है कि मास्टर उत्पादन को ट्रैक कर सकता है। यह केवल तभी काम करता है जब उत्पादन संस्करण सख्ती से बढ़ रहे हों। यह आमतौर पर एक वेबसाइट के लिए सच है जिसमें केवल एक उत्पादन संस्करण है।

यदि आपको कई उत्पादन संस्करण बनाए रखना है, तो उत्पादन को ट्रैक करने के लिए एक शाखा पर्याप्त नहीं है। एक समाधान उत्पादन को ट्रैक करने के लिए मास्टर का उपयोग नहीं करना है। इसके बजाय, release1, release2, आदि जैसे शाखाओं का उपयोग करें

इस दृष्टिकोण में, आपको हॉटफिक्स शाखा की भी आवश्यकता नहीं हो सकती है। आप release1 शाखा पर समस्या को ठीक कर सकते हैं। जब फिक्स पर्याप्त अच्छा होता है, तो release1 शाखा पर release1.1 टैग बनाएं।

+0

आप रिहाई शाखाओं पर रिलीज टैग सेट करने के लिए गिट-फ्लो बदल सकते हैं। यह काफी बड़ा बदलाव है। यह मौजूदा स्क्रिप्ट तोड़ देगा। इसके अलावा, मास्टर के बाद क्या होगा? –

+3

यदि आपको कई उत्पादन संस्करणों का समर्थन करना है तो 'गिट-फ्लो' टूलिंग उपयुक्त नहीं है। इस जवाब में प्रस्तावित वर्कफ़्लो में, मास्टर का बिल्कुल उपयोग नहीं किया जाता है। आप विकास शाखा मास्टर का नाम दे सकते हैं, यह सिर्फ एक नाम है, आखिरकार। – Andomar

+0

गिटफ्लो एक से अधिक उत्पाद संस्करण को ट्रैक करने का समर्थन करता है: https://gitversion.readthedocs.io/en/latest/git-branching-strategies/gitflow-examples/#support-branches –

6

गिट-फ्लो मानता है कि आप एक समय में केवल एक रिलीज लाइन का समर्थन कर रहे हैं, जो आसानी से मास्टर द्वारा ट्रैक किया जाता है। यदि आप 1 से अधिक बनाए रखते हैं, तो आपको अपने अलग-अलग रिलीज़ के कई ट्रैकर्स रखने के लिए गिट-फ्लो प्रक्रिया को संशोधित करने की आवश्यकता होगी (मास्टर -1, मास्टर -2)। सबसे हालिया रिलीज लाइन (मास्टर -2 के बदले में मास्टर) के लिए एक विशिष्ट ट्रैकर के अतिरिक्त या इसके अलावा, आप सबसे हालिया रिलीज लाइन को ट्रैक करने के लिए मास्टर का उपयोग करना जारी रख सकते हैं।

दुर्भाग्यवश, आपके द्वारा उपयोग किए जा रहे किसी भी गिट-फ्लो टूलिंग को शायद संशोधित करने की आवश्यकता होगी, लेकिन उम्मीद है कि आप इस विशिष्ट मामले को सीधे गिट कमांड के साथ संभालने के लिए गिट-फ्लो प्रक्रिया के साथ पर्याप्त परिचित हैं।

+0

यदि आप 'गिट फ्लो' प्रक्रिया को संशोधित करते हैं तो यह होगा कुछ अलग हो। अगर कुछ मॉडल को ठीक किया जाना चाहिए (केवल विस्तारित नहीं) तो यह लेखक के रूप में सफल है। कृपया जिस विषय पर चर्चा कर रहे हैं उसका मेरा उत्तर देखें। –

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