Uso de pre-commit#

Configuración de pre-commit#

Este repositorio contiene una configuración de pre-commit que ayuda a detectar muchos de los problemas comúnes cuando se envían archivos a un repositorio de git.

  • Enviar archivos muy grandes
  • Enviar archivos Markdown con ligas rotas
  • Enviar archivos de texto sin retorno de línea al final del archivo
  • Enviar archivos con espacios en blanco al final de la línea
  • Enviar archivos al repositorio con una mezcla de caracteres de fin de línea:
    • \n (Linux/Unix/macOS)
    • \n\r (Windows)

El script pre-commit se instala como un hook de git para el evento commit y se invoca cada vez que se ejecuta git commit. El programa debe de ejecutarse de manera exitosa para que se pueda completar la operación de commit y que se puedan versionar los archivos en el repositorio.

Warning

  • Si la ejecución de pre-commit falla, entonces debes de verificar el mensaje de error que te dio
  • Los mensajes de error que regresa pre-commit explican cuál fue la condición y qué archivos fueron modificados

Instala los hooks de git para que se pueda ejecutar pre-commit

$ pwd
/ruta/hacia/tareas-redes

$ pre-commit install
pre-commit installed at .git/hooks/pre-commit

Note

Verifica que estas dentro del directorio donde clonaste el repositorio, de lo contrario no se podrán instalar los hooks

Ejecuta pre-commit manualmente para inicializar el entorno y verificar que los hooks se ejecuten de manera correcta.

  • Todos los hooks deben de mostrar un estado Passed o Skipped
  • Ningún hook se debe mostrar como Failed
$ pre-commit run --all-files
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
    ...
check for added large files..............................................Passed
    ...
trim trailing whitespace.................................................Passed

$ echo $?
0

Warning

Verifica que el código de salida del comando sea 0 (cero) utilizando echo $? inmediatamente después de ejecutar pre-commit manualmente

Ejecución de pre-commit#

El programa pre-commit se ejecuta cada vez que se llama git commit:

$ git add ARCHIVO
$ git commit
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check that executables have shebangs.................(no files to check)Skipped
check that scripts with shebangs are executable..........................Passed
check for merge conflicts................................................Passed
check for broken symlinks............................(no files to check)Skipped
check vcs permalinks.....................................................Passed
detect destroyed symlinks................................................Passed
detect aws credentials...................................................Passed
detect private key.......................................................Passed
fix end of files.........................................................Passed
file contents sorter.................................(no files to check)Skipped
fix utf-8 byte order marker..............................................Passed
forbid new submodules................................(no files to check)Skipped
mixed line ending........................................................Passed
trim trailing whitespace.................................................Passed
[main a1b2c3d4] example commit
 1 file changed, 7 insertions(+), 7 deletions(-)

Note

  • Realizarás estos pasos en la siguiente sección

Warning

  • Pregunta en el chat de Telegram si tienes alguna duda

Danger

  • Normalmente la solución a los errores de ejecución de los hooks pre-commit es sencilla y los mensajes de error son bastante descriptivos

Note

  • Continúa en la siguiente página cuando tengas pre-commit instalado y configurado en tu repositorio local

Página anterior Arriba Página siguiente