Comprender los hooks de Git
Explore los distintos tipos de hooks de Git y los puntos en los que se ejecutan dentro del flujo de trabajo de Git.
Comprender los hooks de Git es una lección gratuita de Git & GitHub Professional Workflow en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Git & GitHub Professional Workflow, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Git & GitHub Professional Workflow incluye 4 lecciones en total.
¿Qué son los hooks de Git?
¡Le damos la bienvenida a los hooks de Git! Los hooks de Git son scripts potentes y personalizables que Git ejecuta automáticamente antes o después de eventos como confirmar, enviar o recibir confirmaciones enviadas.
Considérelos puntos de control o acciones automatizados en su flujo de trabajo de Git. Ayudan a hacer cumplir los estándares del proyecto, automatizar tareas e integrarse con otros sistemas.
Dónde se encuentran los hooks
Cada repositorio de Git incluye un directorio .git/hooks. Dentro encontrará scripts de ejemplo para hooks (normalmente terminados en .sample).
Para activar un hook, solo tiene que eliminar la extensión .sample y hacer que el archivo sea ejecutable. Git lo ejecutará en el momento adecuado.
- Ubicación:
.git/hooks/ - Archivos: scripts de shell (Bash, Python, Ruby, etc.)
- Activación: cambiar el nombre y hacer que sea ejecutable
Del lado del cliente frente al lado del servidor
Los hooks de Git se clasifican en dos tipos principales según dónde se ejecutan:
- Hooks del lado del cliente: se ejecutan en su máquina local (por ejemplo, antes de confirmar o hacer rebase). Se utilizan para automatizar el flujo de trabajo personal y hacer cumplir las políticas locales.
- Hooks del lado del servidor: se ejecutan en el servidor Git remoto (por ejemplo, al enviar código a un repositorio compartido). Hacen cumplir las políticas del proyecto para todos.
Hook del cliente: pre-commit
El hook pre-commit es uno de los hooks del lado del cliente más comunes. Se ejecuta *antes* de que Git cree oficialmente una confirmación.
Si el script pre-commit termina con un estado distinto de cero, Git cancela la confirmación. Es perfecto para tareas como:
- Analizar el código con herramientas de lint (comprobar errores de estilo)
- Ejecutar pruebas unitarias
- Comprobar si hay archivos grandes o datos confidenciales
Hook del cliente: commit-msg
El hook commit-msg se ejecuta *después* de que haya introducido el mensaje de la confirmación, pero *antes* de que esta se finalice.
Este hook resulta útil para garantizar que los mensajes de las confirmaciones sigan convenciones o formatos específicos. Por ejemplo, puede comprobar si:
- El mensaje comienza con un ID de incidencia (por ejemplo,
[JIRA-123]) - La longitud del mensaje está dentro de los límites
- Hay palabras clave específicas, o no las hay
Hook del cliente: post-commit
El hook post-commit se ejecuta *inmediatamente después* de que se haya creado correctamente una confirmación.
A diferencia de pre-commit o commit-msg, este hook no puede cambiar el resultado de la confirmación. A menudo se utiliza para notificaciones o integraciones, como:
- Notificar a los miembros del equipo
- Actualizar una herramienta de gestión de proyectos
- Activar una compilación de integración continua (CI), aunque esto es más habitual con hooks del lado del servidor
Hook del servidor: pre-receive
Pasando a los hooks del servidor, pre-receive se ejecuta *antes* de que se actualice cualquier referencia (como ramas o etiquetas) en el repositorio remoto.
Este hook es muy útil para hacer cumplir políticas importantes del repositorio, como:
- Impedir los pushes directos a la rama
main - Asegurarse de que todos los commits estén firmados
- Validar la identidad del autor del commit
Si este hook termina con un código distinto de cero, se rechaza todo el push.
Hook del servidor: post-receive
El hook post-receive se ejecuta *después* de que un push actualiza correctamente las referencias en el repositorio remoto.
Al igual que post-commit, este hook no puede rechazar el push. Se utiliza habitualmente para:
- Activar pipelines de CI/CD
- Actualizar sistemas externos de seguimiento de incidencias
- Enviar notificaciones por correo electrónico al equipo
- Desplegar código en un entorno de staging
Crear un hook sencillo
Para crear un hook, solo tiene que crear un archivo con el nombre del hook (por ejemplo, pre-commit) en el directorio .git/hooks/. Vamos a crear uno muy básico:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Hacer ejecutables los hooks
Después de crear el script del hook, debe hacerlo ejecutable. De lo contrario, Git no lo ejecutará. Use el comando chmod en el terminal:
chmod +x .git/hooks/pre-commit
Ahora, cada vez que intente hacer un commit, ¡Git ejecutará este script!
Comprobación rápida: cuándo se ejecutan los hooks
Los hooks de Git se ejecutan en momentos específicos de su flujo de trabajo. Comprender cuándo se ejecutan es fundamental para utilizarlos eficazmente.
Resumen: comprender los hooks de Git
¡Ha dado el primer paso en el potente mundo de los hooks de Git!
- Los hooks de Git son scripts que automatizan acciones durante eventos de Git.
- Se encuentran en el directorio
.git/hooks/de su repositorio. - Los hooks pueden ser del lado del cliente (en la máquina local) o del lado del servidor (en el repositorio remoto).
- Hooks importantes como
pre-commitypre-receivepueden hacer cumplir políticas bloqueando operaciones. - Hooks como
post-commitypost-receivesirven para enviar notificaciones o realizar integraciones después de una acción.
¡A continuación, veremos ejemplos prácticos de implementación de hooks específicos!
Preguntas frecuentes
¿La lección «Comprender los hooks de Git» es gratis?
Sí — el texto completo de «Comprender los hooks de Git» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Git & GitHub Professional Workflow, actualiza a CoddyKit PRO. El curso de Git & GitHub Professional Workflow incluye 4 lecciones en total.
¿Qué aprenderé en «Comprender los hooks de Git»?
Explore los distintos tipos de hooks de Git y los puntos en los que se ejecutan dentro del flujo de trabajo de Git. Practicas Git & GitHub Professional Workflow con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Git & GitHub Professional Workflow?
No se requiere experiencia previa. Git & GitHub Professional Workflow en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Comprender los hooks de Git»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Git & GitHub Professional Workflow?
Sí. Cada lección de Git & GitHub Professional Workflow incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Comprender los hooks de Git
- Hooks pre-commit y post-merge
- Personalización de la configuración de Git
- Compartir hooks con Husky