В небольших командах зачастую нет необходимости в том, чтобы выстраивать сложную систему прав. И зачастую всё выглядит очень просто:
- Делать PR и мержить можно всем
- Ментейнерам можно пушить в мастер, чтобы быстро реагировать на инциденты
Но иногда ментейнер может случайно запушить свою работу в мастер, так как, к примеру, забыл создать отдельную ветку на задачу.
Подобную проблему может решить проверка на имя ветки на стороне разработчика, чтобы пуши в мастер могли работать только с
--no-verify. Добавьте следующий код к себе в прекоммит хук:
#!/bin/bash
current_branch="$(git branch --show-current)"
if [[ "master" == "$current_branch" ]]; then
echo "ERROR: local branch $current_branch is protected"
exit 1
fi
exit 0