Git - блокировка главной ветви для некоторых пользователей?
-
08-10-2019 - |
Вопрос
Я хотел бы заставить других членов команды не работать над мастер-ветви, но на филиале развития. У нас есть центральный гидропозигатор, в котором мы продвигаем нашу работу. Я хотел бы знать, можно ли блокировать пользователей от толкания изменений в ветку MASTER-FILIVE, но позволит некоторым пользователям сделать это.
Я хотел бы иметь следующий «рабочий процесс»
- Развитие всегда делается только с филиалом развития
- Релиз-менеджер отвечает за мастер-филиал, и только ему разрешено объединять вещи из филиала развития в мастер и подтолкнуть его к мастер-ветви на центральном хранилище.
Это возможно и как я могу добиться этого?
Решение
Видеть man githooks
: В общем репо, вы можете создать $(git rev-parse --git-dir)/hooks/pre-receive
или $(git rev-parse --git-dir)/hooks/update
Сценарий, который проверяет то, что ваши пользователи пытаются подтолкнуть, к которому Refs. Git поставляется с Обновление-параноидация Пример подключения крюка Per-Ref ACL.
Другие советы
Мой подход с низким уровнем будет просто позволить RM быть единственным с помощью ключей SSH, чтобы подтолкнуть к репозитории, которые все остальные используют в качестве основной базовой линии. Таким образом, никто, кроме RM, может подталкивать к мастеру - но все могут работать, так как у них есть свои местные филиалы развития, а Devs может делиться между собой ветвями, которые им нравятся.
Следующим шагом является создание тестера для приготовления пищи на вещах в ближайшее время. Этот горшок обычно называется next
или dev
. Отказ Идея состоит в том, что чем больше влияют на ветвь, тем дольше она готовит перед сливщиком. Это дает RM полный контроль над тем, какие ветки должны выпускник и до сих пор дает каждому головы.