TrashNotes

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, и если нет, блокирует операцию.
← Previous Next →
Back to list