git - блокировка главной ветки для некоторых пользователей? - PullRequest
14 голосов
/ 11 декабря 2010

Я хотел бы заставить других членов команды работать не над мастер-веткой, а над веткой разработки.у нас есть центральный git-репозиторий, куда мы вкладываем свою работу.Я хотел бы знать, возможно ли заблокировать пользователей от внесения изменений в master-ветку, но разрешить это делать только определенным пользователям.

Мне бы хотелось, чтобы следующий «рабочий процесс»

  • разработка всегда выполнялась только с веткой разработки
  • менеджер релиза отвечает за мастерветвь, и только ему разрешено объединять вещи из ветки разработки в мастер и передавать их в мастер-ветку в центральном репозитории в.

Возможно ли это и как мне этого добиться?1011 *

Ответы [ 2 ]

6 голосов
/ 11 декабря 2010

См. man githooks: в общем репо вы можете создать сценарий $(git rev-parse --git-dir)/hooks/pre-receive или $(git rev-parse --git-dir)/hooks/update, который проверяет, что ваши пользователи пытаются нажать на какие ссылки.Git поставляется с update-paranoid примером перехвата, обеспечивающего ACL для каждого рефрака.

1 голос
/ 11 декабря 2010

Мой низкоуровневый подход состоит в том, чтобы позволить RM быть единственным с SSH-ключами, чтобы отправить его в репозиторий, который все остальные используют в качестве основного базового уровня. Таким образом, никто, кроме RM, не может подтолкнуть к освоению - все же каждый может работать, так как у них есть свои собственные локальные ветви разработки, и разработчики могут делиться между собой ветвями, которые им нравятся.

Следующий шаг - приготовить тестер для кастрюли для вещей, которые скоро войдут в мастер. Этот банк обычно называется next или dev. Идея состоит в том, что чем больше влияние оказывает ветвь, тем дольше она готовится до слияния с мастером. Это дает RM полный контроль над тем, какие филиалы должны получить высшее образование, и в то же время дает каждому преимущество.

...