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