access_time
hourglass_empty
person_outline

¿Cómo usar Git Hooks?

Desarrollar una aplicación de calidad es un proceso complejo. Para hacerlo, utilizamos herramientas que complementan el proceso de codificación. Uno de estos procesos de codificación es la automatización. Esto se debe a la necesidad de que los desarrolladores y administradores de sistemas reduzcan el tiempo de implementación. Git es una de las herramientas más populares para este propósito específico. ¡Es por eso que en este tutorial, te mostraremos cómo usar los Git Hooks para mejorar tu proyecto VPS!

Los Git Hooks son una utilidad interna que mejorará la forma en que usas Git. ¡Aprendamos exactamente cómo funcionan!

¿Qué es Git?

Antes de abordar el tema de Hooks, veamos rápidamente qué es Git.

Git es una aplicación de control de versiones de código abierto. Con él, podemos monitorear el desarrollo de software en detalle.

Git es muy popular entre los desarrolladores, y la mayoría de los proyectos de código abierto lo usan.

¿Qué son los Git Hooks?

Con Git podemos crear ramas de desarrollo, registrar cambios y tener un control absoluto sobre las versiones. Sin embargo, es posible automatizar este proceso. La automatización de Git funciona a nivel de programas y deployment. Y para eso existen los Hooks.

Los ganchos de Git son scripts de shell que se ejecutan automáticamente antes o después de que Git ejecute un comando importante como Commit o Push. Para que un Hook funcione, es necesario otorgarle al sistema Unix los permisos de ejecución. Mediante el uso de estos scripts, podemos automatizar ciertas cosas.

Git incluye ejemplos de Git Hooks tan pronto como se inicia un repositorio local. Cabe señalar que sitios como Github o Gitlab no permiten su uso en primera instancia. Es por eso que se utilizan principalmente en instancias locales o privadas.

Cómo usar los Git Hooks

Los Hooks se almacenan en la carpeta .git/hooks/ de cada proyecto clonado, o en un repositorio local recién creado. Allí encontraremos una serie de hooks de ejemplo, que son un buen punto de partida.

Para activar un hook, solo es necesario crear un archivo y guardarlo en la carpeta .git/hooks/. Sin embargo, el nombre del archivo estará predefinido por Git. Algunos de los ganchos que podemos usar son:

Git HookComando GitDescripción
applypatch-msg.samplegit amCuando se cambia un mensaje de patch
commit-msg.samplegit commitPara configurar el mensaje de una acción de confirmación
fsmonitor-watchman.samplelaunch watchmanPara integrar watchman
post-update.samplegit pushPara actualizar todos los datos después del push
pre-applypatch.samplegit amAntes de aplicar un patch
pre-commit.samplegit commitAntes de hacer commit
prepare-commit-msg.samplegit commitCuando se establece un mensaje de confirmación
pre-push.samplegit pushAntes de hacer un push
pre-rebase.samplegit rebaseAntes de hacer un pase o fusionar
pre-receive.samplegit pushCuando presionamos y obtenemos los datos del repositorio remoto
update.samplegit pushPara actualizar los datos remotos en un push

Como podemos ver, cada hook está asociado un comando en Git. De esta forma podemos saber cuándo es conveniente usar un hook.

Ejemplos de cómo usar los Git Hooks

El uso de Hooks es muy amplio, pero se necesitan conocimientos de Bash y otros lenguajes como Python o Ruby para aprovechar todo su potencial. Aun así, aquí te dejamos algunos ejemplos básicos de su uso:

Mostrar información sobre una acción commit

Este ejemplo muestra la información de una acción commit. Crea un archivo llamado prepare-commit-msg en la carpeta .git/hooks/ de tu repositorio. Luego, escribe el siguiente script:

#!/bin/sh

SOB=$(git config github.user)
grep -qs "^$SOB" "$1" || echo ". Cambio por @$SOB" >> "$1"

Luego, guárdalo. Y establece los permisos de ejecución para el archivo.

:~$ chmod +x prepare-commit-msg

Con este simple Hook, al realizar una acción commit, instantáneamente recibirás información relevante al respecto.

Generar documentación a medida que se cargan los cambios

Este Hook pre-push permite generar la documentación de tu código si cuentas con un generador. Cada vez que haces un cambio, la documentación se ejecutará automáticamente.

Crea un pre-push en la misma carpeta que antes y agrega el script:

#!/bin/bash

doxygen Doxyfile
git add docs/
git commit -m "Update documentation ($(date +%F@%R))"

Guarda el archivo y, finalmente, establece el permiso de ejecución.

:~$ chmod +x pre-push

Buscar y corregir espacios en blanco en commits

Este Git Hook tipo pre-commit es bastante simple de ejecutar. Crea un archivo llamado pre-commit y agrega lo siguiente:

#!/bin/bash -l
.git/hooks/pre-commit-master-no-no
if [[ $? == 1 ]]
then
exit 1
fi

.git/hooks/pre-commit-debugger
.git/hooks/pre-commit-trailing-spaces
.git/hooks/pre-commit-images
.git/hooks/pre-commit-pair

Ahora se encontrarán y corregirán los espacios en blanco en todos los commits.

Conclusión

Git es una herramienta vital para los desarrolladores de hoy en día. ¡Los Git Hooks son una excelente manera de mejorarla aún más! En este tutorial, revisamos el concepto fundamental de automatizar procesos con Git Hooks.

Hacer un script para Git Hooks puede ser complicado si no tienes una base sólida de conocimientos en lenguajes de programación, como bash.

Afortunadamente, con este tutorial has ​​dado el primer paso para aprender a usar Git Hooks. ¡Te recomendamos seguir la documentación oficial y continuar el proceso de aprendizaje!

El Autor

Author

Deyimar A. / @deyimar

Deyi es una entusiasta del marketing digital, con experiencia en redes sociales, diseño y posicionamiento de páginas web, creación de contenido, copywrite y estrategias SEO. Actualmente forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, cuando no está pegada al teclado, le gusta desarrollar proyectos, leer un libro o ver una buena película.

Tutoriales relacionados

Agrega un comentario

Comentario*

Nombre*

Correo electrónico*

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

¡Forma parte de Hostinger ahora!