2025-03-07 07:17:34
есть ли возможность в GIT , запретить commit в master?
На GitLab
Если вы используете GitLab, аналогичные настройки доступны через "Защищенные ветки" в настройках репозитория. Вы можете ограничить права доступа к ветке master, разрешив пуш только определенным пользователям или группам.
На собственном сервере
Если вы используете собственный сервер Git без GitHub или GitLab, можно использовать серверные хуки Git. Например, хук pre-receive может проверять, кто пытается отправить изменения в ветку master, и блокировать операцию, если пользователь не входит в список разрешенных7.
Пример хука pre-receive:
bash
#!/bin/bash
changedBranch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
allowedUsers=(user1 user2)
if [[ ${allowedUsers[*]} =~ $USER ]]; then
if [ $changedBranch == "master" ]; then
echo "You are allowed to push to master"
fi
else
if [ $changedBranch == "master" ]; then
echo "You are not allowed to push to master"
exit 1
fi
fi
Этот скрипт проверяет, пытается ли пользователь из списка allowedUsers отправить изменения в ветку master, и если нет, блокирует операцию.
Back to list