¿Se pueden administrar los scripts de Git Hook junto con el repositorio?

Resuelto Pat Notz asked hace 15 años • 15 respuestas

Nos gustaría crear algunos scripts de enlace básicos que todos podamos compartir, para cosas como el formato previo de los mensajes de confirmación. Git tiene scripts de enlace para eso que normalmente se almacenan en <project>/.git/hooks/. Sin embargo, esos scripts no se propagan cuando las personas realizan una clonación y no están controlados por su versión.

¿Existe una buena manera de ayudar a todos a obtener los scripts de enlace correctos? ¿Puedo hacer que esos scripts de enlace apunten a scripts de versión controlada en mi repositorio?

Pat Notz avatar Jan 09 '09 13:01 Pat Notz
Aceptado

En Git 2.9 , la opción de configuración core.hooksPathespecifica un directorio de enlaces personalizado.

Mueva sus enlaces a un hooksdirectorio rastreado en su repositorio. Luego, configure cada instancia del repositorio para usar el seguimiento hooksen lugar de $GIT_DIR/hooks:

git config core.hooksPath hooks

En general, la ruta puede ser absoluta o relativa al directorio donde se ejecutan los enlaces (generalmente la raíz del árbol de trabajo; consulte la sección DESCRIPCIÓN de man githooks).

Max Shenfield avatar Jun 16 '2016 14:06 Max Shenfield

Teóricamente, podrías crear un hooksdirectorio (o el nombre que prefieras) en el directorio de tu proyecto con todos los scripts y luego vincularlos simbólicamente en formato .git/hooks. Por supuesto, cada persona que clonara el repositorio tendría que configurar estos enlaces simbólicos (aunque podría ser muy sofisticado y tener un script de implementación que el clonador podría ejecutar para configurarlos de forma semiautomática).

Para hacer el enlace simbólico en *nix, todo lo que necesitas hacer es:

root="$(pwd)"
ln -s "$root/hooks" "$root/.git/hooks"

Úselo ln -sfsi está listo para sobrescribir lo que hay en.git/hooks

mipadi avatar Jan 09 '2009 06:01 mipadi