Для цього ви можете використовувати утиліту попереднього фіксації . Він має вбудований 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
гачок.