Chuck's Academy

Git Hooks y Automatización

Tipos de Git Hooks

Ahora que tienes una comprensión sólida de los conceptos básicos de Git, es el momento de explorar los diferentes tipos de Git Hooks que puedes utilizar para automatizar y mejorar tu flujo de trabajo.

Clasificación de los Git Hooks

Los Git Hooks se dividen en dos categorías principales:

  1. Hooks del Lado del Cliente: Estos hooks son ejecutados en la máquina del usuario y se activan por acciones como el commit y el push.
  2. Hooks del Lado del Servidor: Estos hooks son ejecutados en el servidor donde se aloja el repositorio y se activan durante las interacciones con el repositorio remoto.

Hooks del Lado del Cliente

Los hooks del lado del cliente se activan durante las acciones locales en el repositorio del usuario. A continuación, se presentan algunos de los más importantes:

  • pre-commit: Se ejecuta antes de que se cree un commit. Puedes usarlo para verificar el formato del código o ejecutar pruebas.

    bash
  • prepare-commit-msg: Se ejecuta antes de que el mensaje de commit sea editado. Útil para preparar o modificar automáticamente el mensaje del commit.

    bash
  • commit-msg: Se ejecuta después de que se ha ingrese el mensaje de commit. Se puede utilizar para validar o modificar el mensaje del commit.

    bash
  • post-commit: Se ejecuta después de que se ha hecho un commit. Ideal para notificaciones o tareas post-commit, como la actualización de un ticket de JIRA.

    bash
  • pre-push: Se ejecuta antes de enviar los commits al repositorio remoto. Este hook se puede usar para verificar el código o finalizar cualquier preparación necesaria antes del push.

    bash

Hooks del Lado del Servidor

Los hooks del lado del servidor se activan durante las interacciones con el repositorio remoto, como al recibir actualizaciones. Algunos de los hooks más destacados son:

  • pre-receive: Se ejecuta antes de aceptar un push en el servidor. Se puede usar para validar los datos recibidos y rechazar el push si no cumple con ciertos criterios.

    bash
  • update: Similar al pre-receive, pero se ejecuta una vez por cada rama en la que se están realizando los cambios.

    bash
  • post-receive: Se ejecuta después de que los datos han sido recibidos. Útil para tareas como la integración continua o despliegues automáticos.

    bash
  • post-update: Se ejecuta después de actualizar las referencias en el repositorio. Ideal para notificaciones o procesos que dependen de las actualizaciones del repositorio.

    bash

Localización de los Git Hooks

Los hooks se almacenan en el directorio hooks dentro del directorio .git en tu repositorio local. Al iniciar un nuevo repositorio, Git proporciona ejemplos de scripts de hooks que están desactivados por defecto (.sample).

bash

Para activar un hook, simplemente renombra su archivo, eliminando la extensión .sample.

bash

A partir de aquí, puedes editar los scripts utilizando cualquier lenguaje de scripting que soporte tu entorno.

En las próximas secciones, nos sumergiremos en cómo configurar y personalizar estos hooks tanto en entornos locales como en servidores, y cómo utilizarlos para automatizar diversas tareas en tu flujo de trabajo.

¡Continuemos!


Pregúntame lo que sea