{"id":1481,"date":"2026-09-15T10:02:48","date_gmt":"2026-09-15T08:02:48","guid":{"rendered":"https:\/\/vermiip.es\/blog\/?p=1481"},"modified":"2026-09-15T10:02:48","modified_gmt":"2026-09-15T08:02:48","slug":"como-automatizar-tareas-con-git-hooks","status":"publish","type":"post","link":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/","title":{"rendered":"C\u00f3mo automatizar tareas con Git Hooks"},"content":{"rendered":"<p>Git no solo sirve para guardar versiones de c\u00f3digo: tambi\u00e9n puede convertirse en un aliado para automatizar tareas repetitivas en tu flujo de trabajo. Una de las formas m\u00e1s potentes de hacerlo es mediante <strong>Git Hooks<\/strong>, peque\u00f1os scripts que se ejecutan en momentos concretos del ciclo de vida de Git.<\/p>\n<p>Si ya dominas conceptos como <a href=\"https:\/\/vermiip.es\/blog\/como-crear-un-commit-correctamente-con-git-commit\">crear commits correctamente<\/a>, <a href=\"https:\/\/vermiip.es\/blog\/como-consultar-el-estado-del-repositorio-con-git-status\">revisar el estado del repositorio<\/a> o <a href=\"https:\/\/vermiip.es\/blog\/como-ignorar-archivos-con-gitignore\">ignorar archivos con .gitignore<\/a>, los hooks son el siguiente paso natural para profesionalizar tu trabajo con Git.<\/p>\n<h2>Qu\u00e9 son los git hooks<\/h2>\n<p>Los Git Hooks son scripts locales o del servidor que Git ejecuta autom\u00e1ticamente antes o despu\u00e9s de eventos como un commit, un push o un merge. Su objetivo es simple: <strong>automatizar validaciones y acciones<\/strong> sin que tengas que recordarlas manualmente cada vez.<\/p>\n<p>Por ejemplo, puedes usar un hook para comprobar que el c\u00f3digo est\u00e1 formateado, ejecutar tests, impedir commits con mensajes vac\u00edos o lanzar tareas de despliegue cuando se suben cambios. En el d\u00eda a d\u00eda, esto reduce errores, ahorra tiempo y ayuda a mantener est\u00e1ndares de calidad consistentes.<\/p>\n<h3>Hooks locales y hooks del servidor<\/h3>\n<p>Los hooks locales se ejecutan en tu m\u00e1quina, dentro del repositorio. Son ideales para validar antes de commit o push. Los hooks del servidor, en cambio, se ejecutan del lado remoto y suelen usarse para pol\u00edticas m\u00e1s estrictas, aunque dependen de la infraestructura de la plataforma.<\/p>\n<p>En este art\u00edculo nos centraremos sobre todo en los hooks locales, porque son los m\u00e1s accesibles y f\u00e1ciles de aplicar en casi cualquier proyecto.<\/p>\n<h2>D\u00f3nde se guardan y c\u00f3mo funcionan<\/h2>\n<p>Git almacena sus hooks dentro de la carpeta <strong>.git\/hooks<\/strong> del repositorio. Al crear un repositorio, encontrar\u00e1s varios archivos de ejemplo con extensi\u00f3n <strong>.sample<\/strong>. Esos ejemplos sirven como referencia para escribir tus propios scripts.<\/p>\n<p>Un detalle importante: Git no activa por defecto todos los hooks de ejemplo. Para usarlos, normalmente debes crear un archivo ejecutable sin la extensi\u00f3n <strong>.sample<\/strong> y colocar ah\u00ed tu l\u00f3gica.<\/p>\n<pre><code># Ejemplo: estructura b\u00e1sica de un hook local\nrepo\/\n\u2514\u2500\u2500 .git\/\n    \u2514\u2500\u2500 hooks\/\n        \u251c\u2500\u2500 pre-commit\n        \u251c\u2500\u2500 commit-msg\n        \u2514\u2500\u2500 pre-push\n\n# Git ejecutar\u00e1 estos archivos si tienen permisos de ejecuci\u00f3n\n# y contienen c\u00f3digo v\u00e1lido para el int\u00e9rprete indicado en la primera l\u00ednea\n<\/code><\/pre>\n<p>La primera l\u00ednea del script suele ser un <strong>shebang<\/strong>, como <code>#!\/bin\/sh<\/code> o <code>#!\/bin\/bash<\/code>, para indicar con qu\u00e9 int\u00e9rprete debe ejecutarse. Despu\u00e9s, puedes a\u00f1adir las comprobaciones o acciones que necesites.<\/p>\n<h2>Hooks m\u00e1s \u00fatiles para automatizar tareas<\/h2>\n<h3>pre-commit: validar antes de crear el commit<\/h3>\n<p>Este es probablemente el hook m\u00e1s popular. Se ejecuta antes de que Git confirme el commit y es perfecto para tareas como:<\/p>\n<p>\u2022 lanzar un formateador de c\u00f3digo<br \/>\n\u2022 ejecutar linters<br \/>\n\u2022 detectar archivos sensibles o secretos<br \/>\n\u2022 impedir commits si hay errores evidentes<\/p>\n<p>Su gran ventaja es que evita que c\u00f3digo defectuoso llegue al historial. Si tu proyecto ya sigue buenas pr\u00e1cticas en los mensajes, como las que explicamos en <a href=\"https:\/\/vermiip.es\/blog\/buenas-practicas-para-escribir-mensajes-de-commit-en-git\">este art\u00edculo sobre mensajes de commit<\/a>, el hook <strong>pre-commit<\/strong> puede complementar esa disciplina con validaciones autom\u00e1ticas.<\/p>\n<h3>commit-msg: controlar la calidad del mensaje<\/h3>\n<p>Este hook se ejecuta despu\u00e9s de escribir el mensaje del commit, pero antes de que Git lo registre definitivamente. Se usa mucho para verificar formatos espec\u00edficos, como convenciones tipo Conventional Commits o reglas internas del equipo.<\/p>\n<p>Por ejemplo, podr\u00edas bloquear mensajes vac\u00edos o exigir que el texto empiece por un prefijo concreto. Esto ayuda a mantener un historial m\u00e1s legible, especialmente en equipos grandes.<\/p>\n<h3>pre-push: revisar antes de subir cambios<\/h3>\n<p>Este hook se ejecuta justo antes de un <strong>git push<\/strong>. Es \u00fatil cuando quieres correr pruebas r\u00e1pidas, comprobar cobertura m\u00ednima o evitar que se suban cambios que rompan el proyecto.<\/p>\n<p>Es una capa de seguridad interesante porque act\u00faa justo antes de publicar el trabajo en el repositorio remoto. Si todav\u00eda no tienes claro el mecanismo con el que env\u00edas cambios al servidor, conviene repasar <a href=\"https:\/\/vermiip.es\/blog\/como-subir-cambios-al-repositorio-con-git-push\">c\u00f3mo funciona git push<\/a>.<\/p>\n<h3>post-commit y post-checkout: tareas informativas<\/h3>\n<p>Los hooks <strong>post-commit<\/strong> y <strong>post-checkout<\/strong> no bloquean acciones; se usan para automatizaciones complementarias. Por ejemplo, puedes mostrar recordatorios, imprimir informaci\u00f3n \u00fatil o sincronizar alguna herramienta externa.<\/p>\n<p>Son menos restrictivos que <strong>pre-commit<\/strong> o <strong>pre-push<\/strong>, pero muy \u00fatiles para mejorar la experiencia del desarrollador sin interrumpir el flujo.<\/p>\n<h2>Ejemplo pr\u00e1ctico de pre-commit<\/h2>\n<p>Veamos un ejemplo sencillo de hook <strong>pre-commit<\/strong> que verifica si hay archivos JavaScript con errores de formato mediante un comando ficticio de lint. La idea real es la misma aunque adaptes la herramienta a tu stack.<\/p>\n<pre><code>#!\/bin\/sh\n# pre-commit: valida el c\u00f3digo antes de aceptar el commit\n\necho \"Ejecutando validaciones previas al commit...\"\n\n# Ejemplo de comprobaci\u00f3n de estilo o lint\nnpm run lint\nif [ $? -ne 0 ]; then\n  echo \"Error: el lint ha fallado. Corrige los problemas antes de commitear.\"\n  exit 1\nfi\n\necho \"Validaci\u00f3n superada.\"\nexit 0\n<\/code><\/pre>\n<p>Si el comando devuelve error, el commit se cancela. Ese comportamiento es justo lo que hace valiosos a los hooks: act\u00faan como un guardi\u00e1n autom\u00e1tico para tu flujo de desarrollo.<\/p>\n<p>Recuerda que este ejemplo debe adaptarse a tu entorno real. En un proyecto Python podr\u00edas usar <code>pytest<\/code> o <code>ruff<\/code>; en uno frontend, formateadores y linters; en un backend, pruebas unitarias o chequeos de configuraci\u00f3n.<\/p>\n<h2>Buenas pr\u00e1cticas para usarlos sin fricci\u00f3n<\/h2>\n<h3>No conviertas el hook en una barrera excesiva<\/h3>\n<p>Si un hook tarda demasiado, el equipo tender\u00e1 a buscar formas de salt\u00e1rselo. La clave est\u00e1 en automatizar tareas r\u00e1pidas y de alto valor. Para validaciones pesadas, suele ser mejor delegarlas a CI\/CD.<\/p>\n<p>Una buena estrategia es reservar los hooks locales para checks inmediatos y dejar para la automatizaci\u00f3n del pipeline pruebas m\u00e1s costosas o despliegues complejos.<\/p>\n<h3>Mant\u00e9n la l\u00f3gica simple y versionable<\/h3>\n<p>La carpeta <strong>.git\/hooks<\/strong> no se comparte autom\u00e1ticamente con el resto del equipo, as\u00ed que conviene almacenar los scripts en un directorio del proyecto y enlazarlos desde la configuraci\u00f3n del repositorio. De ese modo, puedes versionarlos y mantenerlos consistentes entre desarrolladores.<\/p>\n<p>Este enfoque tambi\u00e9n facilita el mantenimiento y evita que cada persona tenga una versi\u00f3n distinta del hook.<\/p>\n<h3>Documenta qu\u00e9 hace cada hook<\/h3>\n<p>Cuando una automatizaci\u00f3n bloquea un commit o un push, el mensaje de error debe ser claro y \u00fatil. Explica qu\u00e9 fall\u00f3 y c\u00f3mo corregirlo. Eso reduce frustraci\u00f3n y mejora la adopci\u00f3n del sistema.<\/p>\n<p>Una mala experiencia con los hooks puede hacer que el equipo los vea como un obst\u00e1culo. Una buena experiencia los convierte en una red de seguridad invisible.<\/p>\n<h2>Relaci\u00f3n con otros flujos de trabajo de git<\/h2>\n<p>Los Git Hooks encajan especialmente bien en equipos que ya trabajan con ramas, revisiones y despliegues frecuentes. Si utilizas ramas para separar funcionalidades, como explicamos en <a href=\"https:\/\/vermiip.es\/blog\/que-son-las-ramas-en-git-y-como-funcionan\">qu\u00e9 son las ramas en Git<\/a>, los hooks ayudan a mantener un est\u00e1ndar m\u00ednimo antes de integrar cambios.<\/p>\n<p>Tambi\u00e9n son \u00fatiles en flujos donde hay varios pasos de validaci\u00f3n antes de publicar, algo muy com\u00fan cuando se compara <a href=\"https:\/\/vermiip.es\/blog\/git-flow-vs-github-flow-que-flujo-de-trabajo-elegir\">Git Flow vs GitHub Flow<\/a>. En ambos casos, automatizar comprobaciones locales reduce problemas en la integraci\u00f3n posterior.<\/p>\n<h2>Errores comunes al empezar<\/h2>\n<p>Un error frecuente es intentar usar hooks para todo. No hace falta automatizar cada paso del desarrollo. Empieza por uno o dos procesos repetidos, como lint, tests r\u00e1pidos o validaci\u00f3n de mensajes, y ampl\u00eda seg\u00fan la necesidad real del equipo.<\/p>\n<p>Otro fallo habitual es olvidar los permisos de ejecuci\u00f3n. Si el script no es ejecutable, Git no lo lanzar\u00e1. Tambi\u00e9n es importante probar el hook en distintos sistemas si trabajas con Linux, macOS y Windows, porque algunas rutas o int\u00e9rpretes pueden variar.<\/p>\n<p>Por \u00faltimo, no conf\u00edes en los hooks como \u00fanica capa de control. Son una herramienta local valiosa, pero deben complementar, no sustituir, las revisiones de c\u00f3digo y la automatizaci\u00f3n centralizada.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Automatizar tareas con Git Hooks es una de esas mejoras peque\u00f1as que marcan una gran diferencia. Te permiten validar c\u00f3digo, reforzar est\u00e1ndares y ahorrar tiempo en tareas repetitivas sin a\u00f1adir pasos manuales a cada commit o push.<\/p>\n<p>Si ya trabajas con Git de forma habitual, los hooks son una evoluci\u00f3n natural de tu flujo. Empieza por un <strong>pre-commit<\/strong> sencillo, mide su impacto y luego a\u00f1ade otras comprobaciones seg\u00fan crezca tu proyecto. La meta no es imponer m\u00e1s reglas, sino construir un proceso m\u00e1s fiable y c\u00f3modo.<\/p>\n<h3>Fuentes y lecturas recomendadas<\/h3>\n<p><a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Customizing-Git-Git-Hooks\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n oficial de Git sobre hooks<\/a><\/p>\n<p><a href=\"https:\/\/docs.github.com\/en\/get-started\/git-basics\" target=\"_blank\" rel=\"noopener\">Gu\u00eda de Git en la documentaci\u00f3n de GitHub<\/a><\/p>\n<p><a href=\"https:\/\/www.atlassian.com\/git\/tutorials\/git-hooks\" target=\"_blank\" rel=\"noopener\">Explicaci\u00f3n pr\u00e1ctica de Git Hooks en Atlassian<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.<\/p>\n","protected":false},"author":1,"featured_media":1482,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[180],"tags":[330],"class_list":["post-1481","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-git","tag-git-hooks"],"_wp_attached_file":null,"_wp_attachment_metadata":null,"_wp_old_slug":null,"_aioseop_description":null,"_wp_attachment_image_alt":null,"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP<\/title>\n<meta name=\"description\" content=\"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP\" \/>\n<meta property=\"og:description\" content=\"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/\" \/>\n<meta property=\"og:site_name\" content=\"Ver mi IP\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-15T08:02:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Xose de la Paz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Xose de la Paz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/\"},\"author\":{\"name\":\"Xose de la Paz\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#\\\/schema\\\/person\\\/0617918e61a75dc2d11c09238bf84200\"},\"headline\":\"C\u00f3mo automatizar tareas con Git Hooks\",\"datePublished\":\"2026-09-15T08:02:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/\"},\"wordCount\":1368,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/output1-8.png\",\"keywords\":[\"git hooks\"],\"articleSection\":[\"GIT\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/\",\"name\":\"C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/output1-8.png\",\"datePublished\":\"2026-09-15T08:02:48+00:00\",\"description\":\"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/output1-8.png\",\"contentUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/output1-8.png\",\"width\":1536,\"height\":1024,\"caption\":\"C\u00f3mo automatizar tareas con Git Hooks\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-automatizar-tareas-con-git-hooks\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo automatizar tareas con Git Hooks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/\",\"name\":\"Cual es mi ip - Internet y otras locuras\",\"description\":\"Internet y otras locuras\",\"publisher\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#organization\"},\"alternateName\":\"Cual es mi IP\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#organization\",\"name\":\"Ver mi IP\",\"alternateName\":\"vermiip\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/cropped-logo-vermiip-naranja.png\",\"contentUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/cropped-logo-vermiip-naranja.png\",\"width\":512,\"height\":512,\"caption\":\"Ver mi IP\"},\"image\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#\\\/schema\\\/person\\\/0617918e61a75dc2d11c09238bf84200\",\"name\":\"Xose de la Paz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g\",\"caption\":\"Xose de la Paz\"},\"description\":\"M\u00e1s de 20 a\u00f1os transformando pasi\u00f3n en profesi\u00f3n. Experto en desarrollo Full Stack con una visi\u00f3n integral que abarca desde la gesti\u00f3n de servidores y redes hasta el dise\u00f1o de interfaz. Soy un \\\"todoterreno\\\" tecnol\u00f3gico que cree en el aprendizaje continuo y la visi\u00f3n global de los proyectos. Entre despliegue y despliegue, me pierdo por el mundo con mi c\u00e1mara al hombro.\",\"sameAs\":[\"https:\\\/\\\/www.enfocado.com\",\"https:\\\/\\\/www.instagram.com\\\/xose_de_la_paz\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/xosedelapaz\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP","description":"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP","og_description":"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.","og_url":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/","og_site_name":"Ver mi IP","article_published_time":"2026-09-15T08:02:48+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png","type":"image\/png"}],"author":"Xose de la Paz","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Xose de la Paz","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#article","isPartOf":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/"},"author":{"name":"Xose de la Paz","@id":"https:\/\/vermiip.es\/blog\/#\/schema\/person\/0617918e61a75dc2d11c09238bf84200"},"headline":"C\u00f3mo automatizar tareas con Git Hooks","datePublished":"2026-09-15T08:02:48+00:00","mainEntityOfPage":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/"},"wordCount":1368,"commentCount":0,"publisher":{"@id":"https:\/\/vermiip.es\/blog\/#organization"},"image":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#primaryimage"},"thumbnailUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png","keywords":["git hooks"],"articleSection":["GIT"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/","url":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/","name":"C\u00f3mo automatizar tareas con Git Hooks - Ver mi IP","isPartOf":{"@id":"https:\/\/vermiip.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#primaryimage"},"image":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#primaryimage"},"thumbnailUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png","datePublished":"2026-09-15T08:02:48+00:00","description":"Aprende a automatizar tareas con Git Hooks para validar, formatear y mejorar tu flujo de trabajo antes y despu\u00e9s de cada commit.","breadcrumb":{"@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#primaryimage","url":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png","contentUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/09\/output1-8.png","width":1536,"height":1024,"caption":"C\u00f3mo automatizar tareas con Git Hooks"},{"@type":"BreadcrumbList","@id":"https:\/\/vermiip.es\/blog\/como-automatizar-tareas-con-git-hooks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/vermiip.es\/blog\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo automatizar tareas con Git Hooks"}]},{"@type":"WebSite","@id":"https:\/\/vermiip.es\/blog\/#website","url":"https:\/\/vermiip.es\/blog\/","name":"Cual es mi ip - Internet y otras locuras","description":"Internet y otras locuras","publisher":{"@id":"https:\/\/vermiip.es\/blog\/#organization"},"alternateName":"Cual es mi IP","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vermiip.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/vermiip.es\/blog\/#organization","name":"Ver mi IP","alternateName":"vermiip","url":"https:\/\/vermiip.es\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/vermiip.es\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2023\/10\/cropped-logo-vermiip-naranja.png","contentUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2023\/10\/cropped-logo-vermiip-naranja.png","width":512,"height":512,"caption":"Ver mi IP"},"image":{"@id":"https:\/\/vermiip.es\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vermiip.es\/blog\/#\/schema\/person\/0617918e61a75dc2d11c09238bf84200","name":"Xose de la Paz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d248b555dd18abd5e7350d28ecf07116718da621eb85762e02558c2cef2bb8bc?s=96&d=mm&r=g","caption":"Xose de la Paz"},"description":"M\u00e1s de 20 a\u00f1os transformando pasi\u00f3n en profesi\u00f3n. Experto en desarrollo Full Stack con una visi\u00f3n integral que abarca desde la gesti\u00f3n de servidores y redes hasta el dise\u00f1o de interfaz. Soy un \"todoterreno\" tecnol\u00f3gico que cree en el aprendizaje continuo y la visi\u00f3n global de los proyectos. Entre despliegue y despliegue, me pierdo por el mundo con mi c\u00e1mara al hombro.","sameAs":["https:\/\/www.enfocado.com","https:\/\/www.instagram.com\/xose_de_la_paz\/","https:\/\/www.linkedin.com\/in\/xosedelapaz\/"]}]}},"_links":{"self":[{"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts\/1481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/comments?post=1481"}],"version-history":[{"count":1,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts\/1481\/revisions"}],"predecessor-version":[{"id":1484,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts\/1481\/revisions\/1484"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/media\/1482"}],"wp:attachment":[{"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/media?parent=1481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/categories?post=1481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/tags?post=1481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}