Для этого вы можете использовать утилиту предварительной фиксации . Он имеет встроенный no-commit-to-branch
крючок, который можно использовать для предотвращения коммитов в одну или несколько веток.
Настроить
Базовый процесс настройки:
- Установите с помощью pip или brew (инструкции на https://pre-commit.com/#install )
- Создайте
.pre-commit-config.yaml
файл в корне вашего проекта (см. Ниже первый черновик)
- Установите хуки в конфигурацию git, запустив
pre-commit install
.
Базовый конфиг для защиты веток
Вот базовая конфигурация, которая включает только no-commit-to-branch
перехватчик:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master']
Если вы хотите защитить несколько веток, вы можете включить несколько --branch
аргументов в список аргументов:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master', '--branch', 'staging']
Разве это не перебор?
У предварительной фиксации есть много других встроенных хуков, а также большая коллекция созданных сообществом хуков , которые изменят способ очистки и проверки ваших коммитов. Я упоминаю об этом потому, что, хотя этот инструмент может быть излишним для простого предотвращения коммитов в защищенную ветку, у него есть много других функций, которые делают его неотразимым и простым дополнением к любому проекту git.
git commit
создание новых, быстрой перемотки вперед не происходит. Похоже, вы просто хотите запретить обычные коммиты, когда текущая ветка -master
и в этом случае загляните вpre-commit
ловушку.