Puede utilizar la utilidad de confirmación previa para hacer esto. Tiene un no-commit-to-branch
gancho incorporado que se puede usar para evitar compromisos en una o más ramas.
Preparar
El proceso de configuración básico es:
- Instalar usando pip o brew (instrucciones en https://pre-commit.com/#install )
- Cree un
.pre-commit-config.yaml
archivo en la raíz de su proyecto (vea a continuación un primer borrador)
- Instale los ganchos en su configuración de git ejecutando
pre-commit install
.
Configuración básica para proteger ramas
Aquí hay una configuración básica que incluye solo el no-commit-to-branch
gancho:
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: no-commit-to-branch
args: ['--branch', 'master']
Si desea proteger varias ramas, puede usar incluir varios --branch
argumentos en la lista de argumentos:
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']
¿No es todo esto exagerado?
La confirmación previa tiene muchos otros enlaces incorporados y una gran colección de enlaces creados por la comunidad que transformarán la forma en que limpia y valida sus confirmaciones. La razón por la que menciono esto es porque, si bien esta herramienta puede ser excesiva solo para evitar compromisos en una rama protegida, tiene muchas otras características que la convierten en una adición simple y convincente para cualquier proyecto de git.
git commit
crea una nueva, no se produce ningún avance rápido. Parece que solo desea prohibir las confirmaciones ordinarias cuando la rama actual esmaster
, en cuyo caso, busque en elpre-commit
gancho.