Git - блокировка главной ветки для некоторых пользователей?
Я хотел бы заставить других членов команды не работать в мастер-ветке, а в ветке разработки. у нас есть центральный git -репозиторий, в который мы вставляем нашу работу. я хотел бы знать, можно ли заблокировать пользователей от нажатия изменений в главной ветки, но только разрешить определенным пользователям делать это.
Я хотел бы иметь следующий "рабочий процесс"
- разработка всегда выполняется только с помощью ветки разработки
- менеджер-релиз отвечает за ведущую ветку, и только ему разрешено объединять материал из ветки разработки в мастер и нажимать ее на главную ветвь в центральном репозитории.
Возможно ли это и как я могу это достичь?
Ответы
Ответ 1
См. man githooks
: в общем репо вы можете создать $(git rev-parse --git-dir)/hooks/pre-receive
или $(git rev-parse --git-dir)/hooks/update
script, который проверяет, пользователи пытаются нажать на которые ссылаются. Git поставляется с update-paranoid примером для принудительного применения ACL файлов для-ref.
Ответ 2
Мой низкоуровневый подход просто заключался бы в том, чтобы позволить RM быть единственным с SSH-ключами, чтобы нажать на репозиторий, все остальные используют в качестве основной базовой линии. Таким образом, никто, кроме RM, не может продвигаться, но все могут работать, так как у них есть свои собственные ветки локального развития, и разработчики могут делиться между собой ветвями, которые им нравятся.
Следующий шаг - сделать тестер для приготовления пищи для вещей, которые скоро пойдут в мастера. Этот банк обычно называется next
или dev
. Идея состоит в том, что чем больше влияние имеет отрасль, тем дольше она готовит до слияния, чтобы справиться с ней. Это дает RM полный контроль над тем, какие ветки должны заканчиваться, и все еще дает всем хед-ап.