receive ocean husky example deploy create git bash github post-commit githooks

git - ocean - husky angular



PostCommit Hook no se está ejecutando (3)

Dejaré esto aquí como respuesta porque me encontré con mi propia respuesta para cuando mi gancho post-commit no se ejecutara:

chmod +x .git/hooks/post-commit

Probablemente se aplica a cualquier tipo de gancho. De hecho, probablemente se aplique a cualquier tipo de script.

Mi enlace de confirmación de publicación no se está ejecutando después de git. He verificado que el gancho funciona si solo lo ejecuto desde la terminal. El código en el gancho es:

#!/bin/sh #.git/hooks/post-commit # An example hook script that is called after a successful # commit is made. # # To enable this hook, rename this file to "post-commit". perl -pi -e ''s/([a-f0-9]+)$/''$( git rev-parse HEAD )/ ../../config/commit.git

Cambié el nombre del archivo para postcompromiso en ./.git/hooks/ y los permisos son -rwxr-xrx así que no estoy seguro de por qué no funciona.


Intenta poner algunas líneas de eco antes y después de la línea perl como esta:

echo "post-commit started" perl ........... echo "post-commit finished"

De esta forma puede confirmar si el script se está ejecutando en realidad, porque cuando ejecuta

git commit

debería ver

post-commit started post-commit finished

Hacia el final de su salida.


Mi script post-commit no fue llamado porque:

Yo había nombrado el script post-commit.sh , en lugar de simplemente post-commit .

Para habilitar una secuencia de comandos de enlace, coloque un archivo en el subdirectorio hooks de su directorio .git que tenga el nombre apropiado (sin ninguna extensión) y que sea ejecutable. Desde ese punto en adelante, debe ser llamado. Cubriremos la mayoría de los principales nombres de archivos de enlaces aquí. Ver git-scm

No estoy seguro de por qué tenía en mi cabeza que los enganches necesitaban la extensión de archivo bash.

Tampoco me di cuenta de que los scripts de gancho no pueden tener extensiones de archivo.

Espero que esto ayude a alguien.