tag - Git: Prevenir confirmaciones en la rama maestra
git tag best practices (1)
Sí, es posible. Debe crear un enganche de pre-confirmación que rechace las confirmaciones a la rama maestra. Git no llama el enlace de pre-confirmación cuando llama al comando de combinación , por lo que este enlace solo rechazará las confirmaciones regulares.
- Ve a tu repositorio.
Cree el archivo .git / hooks / pre-commit con el siguiente contenido:
#!/bin/sh branch="$(git rev-parse --abbrev-ref HEAD)" if [ "$branch" = "master" ]; then echo "You can''t commit directly to master branch" exit 1 fiHazlo ejecutable (no requerido en Windows ):
$ chmod +x .git/hooks/pre-commit
Para deshabilitar las fusiones rápidas, también debe agregar la siguiente opción a su archivo .git / config :
[branch "master"]
mergeoptions = --no-ff
Si también desea proteger la rama maestra en su control remoto, marque esta respuesta: Cómo restringir el acceso a la rama maestra en git
(Por simplicidad) Tengo una rama master y un desarrollador en mi Git-repo. Quiero asegurarme de que la rama master siempre esté funcionando, por lo que todo el trabajo que hago debería estar en la rama dev .
Sin embargo, cuando fusiono mis cambios con una combinación --no-ff , tiendo a quedarme en la rama master , y simplemente continúo trabajando en ella (porque me olvido de revisar mi rama dev ).
¿Puedo establecer una regla para la rama master , que indica que no puedo hacer confirmaciones, y las combinaciones de avance rápido, pero solo las --no-ff de otra rama?
Esto debe funcionar para los repositorios alojados privados (ergo no GitHub y BitBucket).