0Pricing
Git & GitHub Professional Workflow · Lección

Hooks pre-commit y post-merge

Implemente ejemplos prácticos de hooks pre-commit para linting y hooks post-merge para notificaciones.

Hooks pre-commit y post-merge es una lección gratuita de Git & GitHub Professional Workflow en CoddyKit. Esta es la lección 2 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.

Introducción práctica a los hooks de Git

En la lección anterior, aprendimos qué son los hooks de Git y cuáles son sus distintos tipos. ¡Ahora pasemos a la práctica!

Veremos cómo implementar dos hooks potentes: pre-commit y post-merge. Estos permiten automatizar comprobaciones antes de un commit y acciones después de una fusión.

Pre-commit: su barrera de calidad

El hook pre-commit se ejecuta antes de una operación de commit, pero después de haber usado git add para preparar los cambios.

  • Es perfecto para hacer cumplir la calidad y el estilo del código.
  • Puede utilizarlo para ejecutar linters, comprobadores de estilo o incluso pruebas unitarias básicas.
  • Si el script termina con un estado distinto de cero, el commit se cancela automáticamente.

Esto garantiza que solo el código de alta calidad que cumpla las normas entre en su repositorio.

Configurar el hook pre-commit

Para crear un hook pre-commit, debe crear un archivo ejecutable llamado pre-commit dentro del directorio .git/hooks/ de su proyecto.

Git proporciona hooks de ejemplo con extensiones .sample. Quite esa extensión y añada su script personalizado.

Recuerde hacer ejecutable el archivo con: chmod +x .git/hooks/pre-commit

Ejemplo: impedir commits con «TODO»

Vamos a crear un hook pre-commit sencillo que le impida hacer commit de archivos que todavía contengan la palabra "TODO". Es una práctica habitual para asegurarse de que no queden tareas sin terminar en el código base.

El script comprobará todos los archivos preparados en busca de esta palabra clave. Si la encuentra, detendrá el commit.

Hook pre-commit: ¡sin TODO!

A continuación se muestra un script de shell sencillo para su archivo .git/hooks/pre-commit. Comprueba si la palabra "TODO" aparece en archivos .txt preparados.

Pasos:

  1. Cree .git/hooks/pre-commit
  2. Pegue este código
  3. Ejecute chmod +x .git/hooks/pre-commit
#!/bin/sh

# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
  if grep -q "TODO" "$file"; then
    echo "ERROR: Found 'TODO' in staged file: $file"
    echo "Please remove TODOs before committing."
    exit 1
  fi
done

exit 0

Probar el hook pre-commit

Para probar este hook, primero cree un archivo (por ejemplo, test.txt) y añada "TODO: Finish this". Después, intente hacer commit:

git add test.txt
git commit -m "Add test file"

El commit debería cancelarse y verá el mensaje de error del hook. Quite "TODO" de test.txt y ¡el commit se realizará correctamente!

Post-merge: automatizar las acciones posteriores a las fusiones

El hook post-merge se ejecuta automáticamente después de que un comando git merge finaliza correctamente.

  • Es útil para tareas de integración que deben realizarse después de combinar el código.
  • Algunos ejemplos son notificar a los miembros del equipo, actualizar las dependencias del proyecto (por ejemplo, npm install) o ejecutar un script de compilación.
  • A diferencia de pre-commit, este hook no afecta al resultado de la fusión.

Es una excelente forma de automatizar los procesos posteriores a una fusión.

Configurar el hook post-merge

Al igual que con pre-commit, debe crear un archivo llamado post-merge dentro del directorio .git/hooks/.

De nuevo, asegúrese de que sea un archivo ejecutable:

chmod +x .git/hooks/post-merge

Este script se ejecutará cada vez que finalice una fusión en su repositorio.

Ejemplo: alerta de finalización de una fusión

Vamos a crear un hook post-merge que simplemente muestre un mensaje en la consola para confirmar que acaba de producirse una fusión. En un caso real, podría activar un pipeline de CI/CD o enviar una notificación a una aplicación de chat.

Hook post-merge: notificación

A continuación se muestra un script de shell sencillo para su archivo .git/hooks/post-merge. Imprime un mensaje de confirmación.

Pasos:

  1. Cree .git/hooks/post-merge
  2. Pegue este código
  3. Ejecute chmod +x .git/hooks/post-merge
#!/bin/sh

# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"

exit 0

Comprobación de hooks: pre-commit frente a post-merge

¿Cuál de las siguientes tareas gestionaría normalmente un hook pre-commit?

Resumen: hooks en acción

¡Excelente trabajo! En esta lección, ha aprendido a implementar hooks prácticos de Git.

  • Los hooks pre-commit actúan como una barrera de calidad y ejecutan comprobaciones, como linting o pruebas, *antes* de un commit.
  • Los hooks post-merge automatizan acciones *después* de una fusión, como notificaciones o actualizaciones de dependencias.

Estos hooks son herramientas potentes para hacer cumplir estándares y automatizar flujos de trabajo en su repositorio de Git. ¡Siga explorando otros tipos de hooks para personalizar aún más su experiencia con Git!

Preguntas frecuentes

¿La lección «Hooks pre-commit y post-merge» es gratis?

Sí — el texto completo de «Hooks pre-commit y post-merge» 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 «Hooks pre-commit y post-merge»?

Implemente ejemplos prácticos de hooks pre-commit para linting y hooks post-merge para notificaciones. 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 2 de 4.

¿Cuánto tiempo toma la lección «Hooks pre-commit y post-merge»?

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

  1. Comprender los hooks de Git
  2. Hooks pre-commit y post-merge
  3. Personalización de la configuración de Git
  4. Compartir hooks con Husky
← Volver a Git & GitHub Professional Workflow