Katakanlah saya sedang menulis dua versi berbeda dari perangkat lunak / program / aplikasi / skrip yang sama dan menyimpannya di bawah kontrol versi. Versi pertama adalah versi "Dasar" gratis, sedangkan yang kedua adalah versi "Premium" berbayar yang mengambil basis kode dari versi gratis dan memperluasnya dengan beberapa fitur nilai tambah tambahan. Setiap tambalan, perbaikan, atau fitur baru perlu menemukan jalannya ke kedua versi.
Saat ini saya sedang mempertimbangkan menggunakan masterdan developcabang untuk basis kode utama (versi gratis) di samping master-premiumdan develop-premiumcabang untuk versi berbayar. Ketika perubahan dibuat ke versi gratis dan digabung ke mastercabang (setelah pengujian menyeluruh developtentu saja), itu akan disalin ke develop-premiumcabang melalui cherry-pickperintah untuk pengujian lebih lanjut dan kemudian digabung menjadi master-premium.
Apakah ini alur kerja terbaik untuk menangani situasi ini? Adakah potensi masalah, peringatan, atau perangkap yang harus diperhatikan? Apakah ada strategi percabangan yang lebih baik daripada apa yang telah saya buat?
Umpan balik Anda sangat dihargai!
PS Ini untuk skrip PHP yang disimpan di Git, tetapi jawabannya harus berlaku untuk bahasa atau VCS apa pun.