Если бы это был я, у меня было бы два хранилища. Таким образом, вы можете иметь разные разрешения для каждого - публичный доступ на чтение для версии с открытым исходным кодом и чтение / запись для разработчиков только на «приватной» версии.
Чтобы поддерживать закрытую версию в актуальном состоянии, я бы настроил удаленный доступ к хранилищу закрытых версий, который указывает на хранилище общедоступных версий. Это позволит вам перенести или переназначить изменения оттуда на частную. Это, однако, делает предположение, что изменения не будут конфликтовать (то есть набор функций частной версии является скорее набором общедоступной версии, чем расхождением).