Automatizar Tareas con Git : Git Hooks

En BooleanBite, hemos mostrado varios tutoriales sobre como utilizar git o github. En ellos hemos visto como utilizar repositorios Git alojados en Github o en cualquier otro repositorio. Sin embargo, a veces es necesario poder realizar algunas tareas que puedan ayudarnos en los desarrollos utililzando Git.

Aunque hay muchas herramientas para hacer esto, como pueden ser motores de Integración Continua como Jenkins o similar, Git también trae una opción de poder realizar acciones cuando se trabajan con repositorios Git. Estos son los llamados git-hooks, y los utilizaremos para por ejemplo poder subir los cambios de nuestro repositorio a un servidor.

En este artículo solo vamos a abordar los git-hooks a nivel de cliente. Existen otros tipos de Git-Hook pero los abordaremos en otro artículo. En primer lugar, tenemos que saber donde podemos encontrar los scripts necesarios para poder crear el git-hook. Estos pueden encontrarse dentro de la carpeta de metadatos de un repositorio git (.git), en esta carpeta veremos otra carpeta llamada hooks; esta carpeta contendrá los scripts necesarios para crear el hook.


Podemos crear un script por cada proceso que podemos hacer en Git. Seguidamente mostramos una tabla con los distintos procesos que podemos crear.

Git-HookComando GitDescripción
applypatch-msggit amCuando se cambia el mensaje de un parche
pre-applypatchgit amAntes de aplicar un parche
post-applypatchgit amDespués de aplicar un parche
pre-commitgit commitAntes de realizar un commit
prepare-commit-msggit commitCuando se establece el mensaje de un commit
commit-msggit commitCuando se establece el mensaje de un commit
post-commitgit commitDespués de realizar commit.
pre-rebasegit rebaseAntes de realizar un rebase o merge
post-checkoutgit checkoutDespués de realizar un Checkout.
post-mergegit mergeTras realizar un merge.
pre-pushgit pushAntes de realizar un Push
pre-receivegit pushAl realizar un push y obtener los datos del repo remoto.
updategit pushAl actualizar los datos del remoto en un push.
post-receivegit pushAl terminar de actualizar todos los datos del remoto.
post-updategit pushAl actualizar todos los datos tras realizar el push
push-to-checkoutgit pushAl actualizar las referencias locales tras realizar push
pre-auto-gcgit gcAl llamar al recolector de basura de git.
post-rewritegit commit --amendAl realizar un commit con --ammend (sobrescribir).
sendmail-validategit send-mailAl mandar un correo con git.
fsmonitor-watchman

Tras ver los hooks, que podemos utilizar, vamos a ver un ejemplo. Vamos a crear primero un repositorio git vacio; para ello, ejecutamos el siguiente comando:


$ git init

Tras crear el repositorio git, vamos a ir a la carpeta .git/hooks. Y allí vamos a crear el fichero llamado pre-push, con el siguiente contenido:


#!/bin/bash cp index.html /var/www/html

En este ejemplo copia el contenido de un fichero en la carpeta /var/www/html (por ejemplo para subir a un servidor web).

Si probamos a realizar un push, veremos como se ejecuta este script y se modifica correctamente el fichero html.

 

Be the first to comment on "Automatizar Tareas con Git : Git Hooks"

Deja un comentario.

Tu dirección de correo no será publicada.


*


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.