Скажімо, я пишу дві різні версії одного програмного забезпечення / програми / програми / сценарію і зберігаю їх під контролем версій. Перша версія - це безкоштовна версія "Basic", а друга - платна версія "Premium", яка бере кодову базу безкоштовної версії та розширює її за допомогою декількох додаткових додаткових цінностей. Будь-які нові виправлення, виправлення чи функції повинні знайти свій шлях в обох версіях.
Наразі я розглядаю можливість використання master
та develop
гілок для основної кодової бази (безкоштовної версії) поряд із стороною master-premium
та develop-premium
гілок для платної версії. Коли зміни вносяться до безкоштовної версії та об'єднуються до master
гілки (після ретельного тестування, develop
звичайно), вона копіюється в develop-premium
гілку за допомогою cherry-pick
команди для додаткового тестування, а потім об'єднується в master-premium
.
Це найкращий робочий процес для вирішення цієї ситуації? Чи є якісь потенційні проблеми, застереження чи підводні камені, про які слід пам’ятати? Чи є краща стратегія розгалуження, ніж я вже придумав?
Ваші відгуки високо оцінені!
PS Це для сценарію PHP, що зберігається в Git, але відповіді повинні стосуватися будь-якої мови або VCS.