git गिट-फ्लो के बाद आप पहले रिलीज के हॉटफिक्स को कैसे संभालेंगे?




branch git-flow (3)

यदि आप यहां गिट-फ्लो ब्रांचिंग मॉडल का पालन करने का प्रयास करते हैं, यहां और यहां टूल्स के साथ दस्तावेज़ित , आपको इस स्थिति को कैसे संभालना चाहिए:

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

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

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


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

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

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


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

इन धागे के साथ इस धागे में अधिक जानकारी है :

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

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

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





hotfix