Моя организация готовится выпустить версию нашего программного обеспечения с открытым исходным кодом с помощью github, однако я не уверен, что лучший способ приблизиться к этому:
У нас есть две ветки master и release, master содержит некоторые запатентованные компоненты, которые мы решили не выпускать, и release содержит очищенную версию, которую мы хотим распространять. Проблема в том, что если мы просто нажмем ветвь release на github, проприетарные компоненты могут быть восстановлены, просмотрев историю изменений.
Я думал о создании отдельного репозитория, копируя HEAD relase в него, выполняя git init
и нажав этот репозиторий на github. Тем не менее, мы хотим сохранить возможность вишни - выбрать определенные патчи с мастера в release в будущем и надавить эти изменения до github.
Есть ли способ сделать это, не поддерживая два репозитория separte?
Спасибо!
Update:
Чтобы быть более конкретным, это похоже на то, как выглядит наша история фиксации на данный момент:
--- o - o - o - o - f - o - o - f - master
\
c - c - c - c - c - c - c - REL - f - f
Где "o" совершаются в master, проприетарная ветвь "c" - это фиксации, которые удаляют вещи, которые не должны публиковаться (часто не удаляя целые файлы, а перерабатывая существующие, чтобы не полагаться на проприетарных компонентах), а "f" - это исправления в master, которые применяются к release, а также выбраны вишня. REL - это тег-версия кода, которую мы считаем безопасным для публикации, без какой-либо истории (даже предыдущие версии ветки релиза, поскольку не все запатентованные материалы были удалены до тега REL).