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