⚙️ Git hooks explicado fácil: automatiza tareas como un pro 🚀


Si ya dominas commits, ramas y merges, estás listo para dar un salto importante:

Automatizar tareas en Git con hooks.

Los Git hooks son una de esas herramientas que usan los desarrolladores avanzados…

pero casi nadie explica bien.

En esta guía aprenderás:

  • qué son los hooks
  • cómo funcionan
  • cómo crear tus propios hooks
  • ejemplos reales
  • buenas prácticas


🧠 Qué son los Git hooks


Un hook es:

un script que se ejecuta automáticamente cuando ocurre un evento en Git


📌 Ejemplos de eventos


  • antes de hacer commit
  • después de hacer commit
  • antes de hacer push
  • al hacer merge

👉 Git puede ejecutar código automáticamente



📁 Dónde están los hooks


Dentro de tu repositorio:

.git/hooks/

Ahí verás archivos como:

pre-commit.sample
pre-push.sample


⚙️ Cómo funcionan


Git ejecuta scripts en momentos específicos.

Ejemplo:

👉 antes de commit → pre-commit

👉 antes de push → pre-push


🧪 Tu primer Git hook


1️⃣ Ir a la carpeta

cd .git/hooks

2️⃣ Crear hook

nano pre-commit

3️⃣ Añadir script

#!/bin/bash
echo "Antes de hacer commit"

4️⃣ Dar permisos

chmod +x pre-commit

5️⃣ Probar

git commit -m "Test"

👉 verás el mensaje ejecutarse



🔥 Hooks más importantes


🟢 pre-commit


Se ejecuta antes del commit

👉 ideal para:

  • validar código
  • ejecutar tests
  • revisar formato


🔵 commit-msg


Valida el mensaje del commit



🟡 pre-push


Antes de enviar código

👉 puedes bloquear pushes incorrectos



🔴 post-commit


Después del commit

👉 notificaciones o logs



🧪 Ejemplo real: evitar commits sin mensaje


#!/bin/bash

mensaje=$(cat $1)

if [ -z "$mensaje" ]; then
  echo "❌ Debes escribir un mensaje de commit"
  exit 1
fi


🧪 Ejemplo real: evitar subir código roto


#!/bin/bash

npm test

if [ $? -ne 0 ]; then
  echo "❌ Tests fallaron. No puedes hacer commit"
  exit 1
fi


🧠 Hooks con herramientas modernas


Puedes usar herramientas como:

  • Husky (JavaScript)
  • pre-commit (Python)

Ejemplo con Husky:

npx husky add .husky/pre-commit "npm test"


⚠️ Importante sobre hooks


👉 Los hooks son locales

Esto significa:

  • no se comparten automáticamente
  • cada desarrollador debe tenerlos


🧠 Soluciones para compartir hooks


  • scripts en repositorio
  • herramientas como Husky
  • documentación del proyecto


❌ Errores comunes


❌ olvidar permisos

chmod +x hook

❌ scripts mal escritos

👉 el commit falla



❌ depender de hooks no compartidos


🧠 Buenas prácticas


✔️ usa hooks simples

✔️ no bloquees sin motivo

✔️ documenta hooks

✔️ usa herramientas modernas


🚀 Casos reales de uso


  • validar código antes de commit
  • ejecutar tests automáticamente
  • prevenir errores
  • estandarizar commits


🧠 Concepto clave


Git hooks convierten procesos manuales en automáticos


📌 Resumen rápido


hook → evento → script → acción automática





🧠 Conclusión:


Los Git hooks son un paso hacia un flujo profesional.

Te permiten:

  • automatizar tareas
  • evitar errores
  • mejorar calidad de código

Y lo mejor:

Te ahorran tiempo y dolores de cabeza 😄



Volver al post Pilar: