Pro Git
Pro Git Uno de los cortocircuitos que suelen utilizar los usuarios para saltarse la politica de denyNonFastForwards, suele ser el borrar la rama y luego volver a enviarla de vuelta con la nueva referencia. Puedes evitar esto poniendo a true el parámetro receive.denyDeletes:
$ git config --system receive.denyDeletes trueEsto impide el borrado de ramas o de etiquetas por medio de un envío a través de la mesa (push across the board), --ningún usuario lo podrá hacer--. Para borrar ramas remotas, tendrás que borrar los archivos de referencia manualmente sobre el propio servidor. Existen también algunas otras maneras más interesantes de hacer esto mismo, pero para usuarios concretos, a través de permisos (ACLs); tal y como veremos en Un ejemplo de implantación de una determinada política en Git.
Algunos de los ajustes que hemos visto, pueden ser especificados para un camino (path) concreto, de tal forma que Git los aplicará únicamente para una carpeta o para un grupo de archivos determinado. Estos ajustes específicos relacionados con un camino, se denominan atributos en Git. Y se pueden fijar, bien mediante un archivo .gitattribute en uno de los directorios de tu proyecto (normalmente en la raíz del proyecto), o bien mediante el archivo git/info/attributes en el caso de no querer guardar el archivo de atributos dentro de tu proyecto.