एक महत्वपूर्ण बात जो git-flow को संबोधित करने के लिए बनाई गई थी, वह किसी दिए गए शाखा की भूमिका के बारे में तर्क करने की क्षमता थी, और यह किस शाखा से आती और विलीन होती है।
आदर्श रूप से, सभी शाखाएं उस कोडलाइन में वापस आ जाती हैं, जिनसे उन्हें विलय किया गया था। यह आमतौर पर मेनलाइन से एक मर्ज होता है (git-flow में यह dev
)। शाखा शाखाएं और देव से विलय, शाखाएं छोड़ें शाखा और देव से विलय (एक अतिरिक्त विलय के साथ master
)। हॉट फ़िक्सेस शाखा और मास्टर से मर्ज (उस अतिरिक्त मर्ज वापस देव के लिए)।
प्रत्येक कोडलाइन शाखा से वापस अपने माता-पिता में विलीन हो जाती है। एक codeline सकता है किसी भी समय अन्य codelines से कोड में खींच अगर यह आवश्यक है।
यदि एक सुविधा शाखा से शाखा एक "मैं उस सुविधा शाखा में एक समस्या को ठीक करने के इस तरीके का पता लगाना चाहता हूं" - पूरी तरह से ठीक है। यह सुविधा शाखा से शाखाएं लेता है, कुछ कोड बनाता है और वापस फीचर शाखा में विलीन हो जाता है (या खारिज कर दिया जाता है)।
- सुविधा से शाखा
- विचार का पता लगाएं
- सुविधा के लिए मर्ज
हालांकि आप जो बचना चाहते हैं वह कुछ ऐसा है जो दिखता है:
- आवश्यक-सुविधा से शाखा
- कोड पर काम करते हैं
- एक बार आवश्यक-सुविधा पूर्ण होने के बाद देव से विलय करें
- सुविधा शाखा में कार्यक्षमता (और अतिरिक्त कमिट) सत्यापित करें
- देव में विलय
कारण यह है कि शुरुआत और अंत मेल नहीं खाते हैं - यह यह समझना थोड़ा कठिन है कि यह क्या है और क्या है। असंभव नहीं है, लेकिन यह सिर्फ किसी को अपनी भूमिका को समझने में थोड़ा अधिक समय लेता है।
हालाँकि, यदि यह नई सुविधा है जो कोड पर निर्भर करती है जो अभी तक देव में नहीं मिली है, तो प्रवाह होना चाहिए:
- देव से शाखा
- आवश्यक-सुविधा से मर्ज करें
- कोड पर काम करते हैं
- एक बार आवश्यक-सुविधा पूर्ण होने के बाद देव से विलय करें
- सुविधा शाखा में कार्यक्षमता (और अतिरिक्त कमिट) सत्यापित करें
- देव में विलय
ध्यान दें कि यह देव से एक शाखा से शुरू होता है और देव में एक मर्ज के साथ समाप्त होता है।
सभी ने कहा, शायद सबसे अच्छी बात यह है कि एक फीचर से दूसरे फीचर में मर्ज करने से बचें। सुविधा को शाखा दें, जो कुछ भी आवश्यक हो उसे करें ... और प्रतीक्षा करें।
- देव से शाखा
- कोड पर काम करते हैं
- एक बार आवश्यक-सुविधा पूर्ण होने के बाद देव से विलय करें
- सुविधा शाखा में कार्यक्षमता (और अतिरिक्त कमिट) सत्यापित करें
- देव में विलय
यह शाखाओं और कोड का सबसे स्थिर सेट प्रदान करता है।
भविष्य के काम के लिए कुछ पर विचार करने के लिए अन्य विशेषताओं के साथ इंटरऑपरेबिलिटी के लिए आवश्यक इंटरफेस को प्रकाशित करने के लिए एक सुविधा होगी - भले ही कार्यान्वयन पूरा नहीं हुआ हो। इसे देव में विलय कर दिया जाएगा, और फिर आवश्यक-सुविधा उन इंटरफेस से दूर काम कर सकती है जैसा कि भविष्य की सुविधा हो सकती है। यह संभवतः भविष्य की सुविधा को आगे बढ़ने की अनुमति देगा (इंटरफेस के खिलाफ कोडिंग, स्टब्स के खिलाफ परीक्षण जो इंटरफेस को लागू करता है) की तुलना में यदि यह आवश्यक है कि इसे देव में विलय करने के लिए आवश्यक-सुविधा के लिए इंतजार करना पड़े।