Используйте два отдельных репозитория, один общедоступный, один частный, и не передавайте частные ветки в общедоступный репозиторий.
Вы можете использовать update
hook в общедоступном репозитории, чтобы запретить нажатия, которые пытаются протолкнуть эти частные ветки, чтобы избежать случайного выталкивания частных ветвей в публичный репозиторий. Вы также можете использовать хук pre-receive
, если хотите заблокировать весь push-запрос, если кто-то случайно попытается нажать приватную ветку, вместо того, чтобы просто заблокировать создание этой ветви.
Вы также можете просто использовать образец update
в общедоступном репозитории (переименовать его с update.sample
на update
и убедиться, что он исполняемый) и установить для параметра конфигурации hooks.denycreatebranch
запрет на создание любые новые ветки в общедоступном репо, позволяющие содержать только те ветки, которые уже существуют или созданы локально в этом репо.