मान लीजिए कि मैं एक ही सॉफ्टवेयर / प्रोग्राम / ऐप / स्क्रिप्ट के दो अलग-अलग संस्करण लिख रहा हूं और उन्हें संस्करण नियंत्रण के तहत संग्रहीत कर रहा हूं। पहला संस्करण एक मुफ्त "बेसिक" संस्करण है, जबकि दूसरा एक "प्रीमियम" संस्करण है जो मुफ्त संस्करण के कोडबेस को लेता है और कुछ अतिरिक्त मूल्य वर्धित सुविधाओं के साथ इसका विस्तार करता है। किसी भी नए पैच, फ़िक्सेस या सुविधाओं को दोनों संस्करणों में अपना रास्ता खोजने की आवश्यकता है।
मैं वर्तमान में उपयोग कर पर विचार कर रहा हूँ masterऔर developमुख्य codebase (निःशुल्क संस्करण) की ओर के साथ के लिए शाखाओं master-premiumऔर develop-premiumशाखाओं का भुगतान किया संस्करण के लिए। जब एक परिवर्तन मुक्त संस्करण में किया जाता है और masterशाखा में विलय हो जाता है ( developपाठ्यक्रम पर पूरी तरह से परीक्षण के बाद ), तो इसे अधिक परीक्षण के लिए कमांड के develop-premiumमाध्यम से शाखा में कॉपी किया जाता है cherry-pickऔर फिर विलय हो जाता है master-premium।
क्या इस स्थिति को संभालने के लिए यह सबसे अच्छा वर्कफ़्लो है? क्या किसी संभावित समस्या, चेतावनी, या नुकसान के बारे में पता होना चाहिए? क्या मेरे पास पहले से जो कुछ है, उससे बेहतर ब्रांचिंग रणनीति है?
आपके सुझावों का स्वागत है!
PS यह Git में संग्रहीत PHP स्क्रिप्ट के लिए है, लेकिन उत्तर किसी भी भाषा या VCS पर लागू होने चाहिए।