tipos tag remove practices etiquetas crear best git merge fast-forward

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.

  1. Ve a tu repositorio.
  2. 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 fi

  3. Hazlo 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).