{"id":1522,"date":"2026-10-07T09:57:05","date_gmt":"2026-10-07T07:57:05","guid":{"rendered":"https:\/\/vermiip.es\/blog\/?p=1522"},"modified":"2026-10-07T09:57:06","modified_gmt":"2026-10-07T07:57:06","slug":"como-trabajar-con-submodulos-en-git-git-submodule","status":"publish","type":"post","link":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/","title":{"rendered":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)"},"content":{"rendered":"<p>En proyectos reales, no todo vive en un \u00fanico repositorio. A veces necesitas reutilizar una librer\u00eda interna, incorporar un componente compartido o fijar una dependencia a una versi\u00f3n exacta. Ah\u00ed es donde entran los <strong>subm\u00f3dulos de Git<\/strong>: una forma de incluir un repositorio dentro de otro sin mezclar sus historiales.<\/p>\n<p>Este enfoque es \u00fatil cuando quieres mantener separaci\u00f3n clara entre proyectos, pero tambi\u00e9n puede resultar confuso si no conoces bien su flujo de trabajo. En este art\u00edculo veremos qu\u00e9 son, cu\u00e1ndo conviene usarlos y c\u00f3mo trabajar con ellos sin sufrir m\u00e1s de la cuenta.<\/p>\n<h2>Qu\u00e9 es un subm\u00f3dulo y por qu\u00e9 existe<\/h2>\n<p>Un subm\u00f3dulo es, b\u00e1sicamente, una referencia a otro repositorio Git dentro de tu repositorio principal. Git no copia el contenido como si fuera una carpeta cualquiera: guarda una <strong>referencia a un commit concreto<\/strong> del proyecto externo.<\/p>\n<p>Eso significa que el repositorio padre \u201csabe\u201d qu\u00e9 versi\u00f3n del subm\u00f3dulo debe usar, pero el hist\u00f3rico del subm\u00f3dulo sigue viviendo por separado. Esta diferencia es importante, sobre todo si vienes de conceptos como <a href=\"https:\/\/vermiip.es\/blog\/como-clonar-un-repositorio-con-git-clone\">git clone<\/a> o de trabajar con <a href=\"https:\/\/vermiip.es\/blog\/que-son-las-ramas-en-git-y-como-funcionan\">ramas en Git<\/a>.<\/p>\n<h3>Cu\u00e1ndo tiene sentido usar subm\u00f3dulos<\/h3>\n<p>Los subm\u00f3dulos suelen encajar bien en estos escenarios:<\/p>\n<p>&#8211; Cuando mantienes una librer\u00eda compartida entre varios proyectos.<br \/>\n&#8211; Cuando necesitas fijar una dependencia a una versi\u00f3n exacta.<br \/>\n&#8211; Cuando un componente externo tiene su propio ciclo de vida y sus propios responsables.<br \/>\n&#8211; Cuando prefieres aislar el historial en lugar de copiar archivos o duplicar c\u00f3digo.<\/p>\n<p>No siempre son la soluci\u00f3n ideal. En algunos equipos, una alternativa como monorepo, paquetes versionados o gestores de dependencias puede resultar m\u00e1s sencilla. Pero si necesitas control fino sobre una dependencia de c\u00f3digo, los subm\u00f3dulos siguen siendo una herramienta v\u00e1lida.<\/p>\n<h2>C\u00f3mo a\u00f1adir un subm\u00f3dulo a tu repositorio<\/h2>\n<p>La sintaxis b\u00e1sica es muy simple. Se usa <strong>git submodule add<\/strong> seguido de la URL del repositorio y la ruta donde quieres colocarlo.<\/p>\n<pre><code># A\u00f1adir un subm\u00f3dulo en la carpeta vendor\/libreria\ngit submodule add https:\/\/github.com\/ejemplo\/libreria.git vendor\/libreria\n\n# Registrar el cambio en el repositorio principal\ngit add .gitmodules vendor\/libreria\ngit commit -m \"A\u00f1adir subm\u00f3dulo de librer\u00eda compartida\"<\/code><\/pre>\n<p>Cuando ejecutas este comando, Git crea un archivo llamado <strong>.gitmodules<\/strong>. Ese archivo guarda la relaci\u00f3n entre la ruta local y la URL del subm\u00f3dulo. Tambi\u00e9n a\u00f1ade una entrada especial en el \u00edndice del repositorio principal que apunta al commit concreto de ese subm\u00f3dulo.<\/p>\n<p>Si ya has trabajado con <a href=\"https:\/\/vermiip.es\/blog\/como-anadir-archivos-al-repositorio-con-git-add\">git add<\/a> y <a href=\"https:\/\/vermiip.es\/blog\/como-crear-un-commit-correctamente-con-git-commit\">git commit<\/a>, ver\u00e1s que el flujo es parecido, pero con una particularidad: no est\u00e1s versionando una carpeta normal, sino una referencia a otro repositorio.<\/p>\n<h2>C\u00f3mo clonar un repositorio con subm\u00f3dulos<\/h2>\n<p>Uno de los errores m\u00e1s comunes es clonar un proyecto con subm\u00f3dulos y descubrir despu\u00e9s que sus carpetas aparecen vac\u00edas o sin inicializar. Esto ocurre porque Git, por defecto, no descarga autom\u00e1ticamente su contenido completo.<\/p>\n<p>Para evitarlo, clona el proyecto con la opci\u00f3n adecuada o inicializa los subm\u00f3dulos despu\u00e9s.<\/p>\n<pre><code># Clonar el repositorio principal y sus subm\u00f3dulos en un solo paso\ngit clone --recurse-submodules https:\/\/github.com\/ejemplo\/proyecto-principal.git\n\n# Si ya lo has clonado sin esa opci\u00f3n\ngit submodule update --init --recursive<\/code><\/pre>\n<p>La opci\u00f3n <strong>&#8211;recursive<\/strong> tambi\u00e9n es \u00fatil cuando un subm\u00f3dulo contiene a su vez otros subm\u00f3dulos. En proyectos complejos, esto evita tener que inicializar cada nivel manualmente.<\/p>\n<h2>C\u00f3mo actualizar un subm\u00f3dulo<\/h2>\n<p>Actualizar un subm\u00f3dulo no funciona exactamente igual que actualizar una carpeta normal. Primero debes entrar en el directorio del subm\u00f3dulo, cambiar a la rama o commit deseado y obtener los \u00faltimos cambios del repositorio remoto.<\/p>\n<pre><code># Entrar en el subm\u00f3dulo\ncd vendor\/libreria\n\n# Traer cambios del repositorio del subm\u00f3dulo\ngit fetch\n\n# Cambiar a la rama deseada\ngit switch main\n\n# Actualizar a la \u00faltima versi\u00f3n disponible\ngit pull origin main\n\n# Volver al repositorio principal\ncd ..\/..\n\n# Registrar el nuevo puntero del subm\u00f3dulo\ngit add vendor\/libreria .gitmodules\ngit commit -m \"Actualizar subm\u00f3dulo de librer\u00eda\"<\/code><\/pre>\n<p>Observa que el repositorio principal no guarda \u201cel contenido\u201d actualizado, sino el nuevo commit al que apunta el subm\u00f3dulo. Esa es la clave conceptual. Si quieres dominar este enfoque, tambi\u00e9n conviene entender c\u00f3mo funcionan <a href=\"https:\/\/vermiip.es\/blog\/como-sincronizar-repositorios-con-git-fetch\">git fetch<\/a> y <a href=\"https:\/\/vermiip.es\/blog\/como-subir-cambios-al-repositorio-con-git-push\">git push<\/a>, porque forman parte del mismo ciclo de sincronizaci\u00f3n.<\/p>\n<h3>c\u00f3mo ver qu\u00e9 subm\u00f3dulos tienes y en qu\u00e9 estado est\u00e1n<\/h3>\n<p>Git ofrece comandos \u00fatiles para inspeccionar la situaci\u00f3n de los subm\u00f3dulos dentro del proyecto:<\/p>\n<pre><code># Ver el estado general de los subm\u00f3dulos\ngit submodule status\n\n# Ver qu\u00e9 subm\u00f3dulos est\u00e1n inicializados\ngit submodule foreach 'git status --short --branch'<\/code><\/pre>\n<p>En <strong>git submodule status<\/strong>, Git muestra el commit referenciado por cada subm\u00f3dulo. Si aparece un prefijo especial, puede indicar que el subm\u00f3dulo est\u00e1 desincronizado respecto a lo que espera el repositorio padre.<\/p>\n<h2>C\u00f3mo sincronizar un subm\u00f3dulo con su configuraci\u00f3n<\/h2>\n<p>Si alguien cambia la URL del subm\u00f3dulo en el archivo <strong>.gitmodules<\/strong>, tu copia local puede quedarse apuntando a una ruta antigua. En ese caso, Git permite sincronizar la configuraci\u00f3n local con la del archivo central.<\/p>\n<pre><code># Sincronizar la configuraci\u00f3n de subm\u00f3dulos\ngit submodule sync --recursive\n\n# Inicializar y actualizar despu\u00e9s de sincronizar\ngit submodule update --init --recursive<\/code><\/pre>\n<p>Este paso es especialmente \u00fatil en equipos donde los subm\u00f3dulos cambian de ubicaci\u00f3n o cuando acabas de hacer <a href=\"https:\/\/vermiip.es\/blog\/como-descargar-cambios-del-repositorio-con-git-pull\">git pull<\/a> y notas que algo no encaja con la configuraci\u00f3n local.<\/p>\n<h2>Problemas habituales al trabajar con subm\u00f3dulos<\/h2>\n<p>Los subm\u00f3dulos tienen mala fama, y no del todo injustificada. No porque est\u00e9n mal dise\u00f1ados, sino porque a\u00f1aden una capa extra de coordinaci\u00f3n. Los fallos m\u00e1s comunes suelen ser previsibles:<\/p>\n<p>&#8211; Olvidar inicializarlos tras clonar el repositorio.<br \/>\n&#8211; Actualizar el subm\u00f3dulo pero no registrar el nuevo puntero en el repositorio padre.<br \/>\n&#8211; Cambiar archivos dentro del subm\u00f3dulo sin hacer commit en su propio repositorio.<br \/>\n&#8211; Esperar que <a href=\"https:\/\/vermiip.es\/blog\/como-ver-el-historial-de-cambios-con-git-log\">git log<\/a> del repositorio principal muestre el historial interno del subm\u00f3dulo.<\/p>\n<p>Recuerda que cada repositorio conserva su propio historial. Si necesitas revisar qui\u00e9n cambi\u00f3 una l\u00ednea dentro del subm\u00f3dulo, tendr\u00e1s que entrar en ese repositorio y usar all\u00ed sus herramientas de inspecci\u00f3n, como <a href=\"https:\/\/vermiip.es\/blog\/como-usar-git-blame-para-saber-quien-modifico-una-linea\">git blame<\/a>.<\/p>\n<h3>Recomendaciones para equipos<\/h3>\n<p>Si trabajas con subm\u00f3dulos en un equipo, estas pr\u00e1cticas ayudan bastante:<\/p>\n<p>&#8211; Documenta siempre c\u00f3mo inicializarlos y actualizarlos.<br \/>\n&#8211; Define qu\u00e9 rama o commit se considera estable.<br \/>\n&#8211; Evita que cada persona actualice el subm\u00f3dulo \u201ca su manera\u201d.<br \/>\n&#8211; Revisa el archivo <strong>.gitmodules<\/strong> en las code reviews.<\/p>\n<p>Tambi\u00e9n es buena idea usar mensajes de commit claros cuando actualices un subm\u00f3dulo, para que el resto del equipo entienda si has cambiado una dependencia, una versi\u00f3n o simplemente un puntero. En ese sentido, conviene repasar las <a href=\"https:\/\/vermiip.es\/blog\/buenas-practicas-para-escribir-mensajes-de-commit-en-git\">buenas pr\u00e1cticas para escribir mensajes de commit<\/a>.<\/p>\n<h2>Subm\u00f3dulos frente a otras opciones<\/h2>\n<p>Antes de adoptar subm\u00f3dulos, merece la pena valorar si realmente necesitas separar historiales. En algunos casos, un subm\u00f3dulo aporta orden y control; en otros, solo a\u00f1ade complejidad operativa.<\/p>\n<p>Si tu proyecto est\u00e1 creciendo y necesitas entender mejor c\u00f3mo encajan repositorios, ramas, sincronizaci\u00f3n y dependencias, quiz\u00e1 te interese repasar tambi\u00e9n conceptos como <a href=\"https:\/\/vermiip.es\/blog\/como-gestionar-repositorios-remotos-con-git-remote\">git remote<\/a> o <a href=\"https:\/\/vermiip.es\/blog\/como-fusionar-ramas-con-git-merge\">git merge<\/a>. Aunque no resuelven lo mismo, ayudan a tener una visi\u00f3n m\u00e1s completa del flujo de trabajo con Git.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Trabajar con subm\u00f3dulos en Git tiene una idea central muy sencilla: un repositorio principal puede referenciar otro repositorio a un commit exacto. A partir de ah\u00ed, todo consiste en recordar que son piezas separadas, con historiales distintos y ciclos de actualizaci\u00f3n independientes.<\/p>\n<p>Si los usas con criterio, pueden ser una gran soluci\u00f3n para compartir c\u00f3digo entre proyectos, fijar dependencias internas o mantener componentes desacoplados. Si los usas sin disciplina, en cambio, pueden convertirse en una fuente de errores dif\u00edciles de rastrear.<\/p>\n<p>La clave est\u00e1 en documentar el proceso, automatizar lo posible y entender bien qu\u00e9 est\u00e1 versionando cada repositorio. Con eso, los subm\u00f3dulos dejan de parecer un truco misterioso y se convierten en una herramienta \u00fatil m\u00e1s dentro de tu caja de Git.<\/p>\n<h3>Fuentes y lecturas recomendadas<\/h3>\n<p><a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Git-Tools-Submodules\" target=\"_blank\" rel=\"noopener\">Git SCM Book: Submodules<\/a><\/p>\n<p><a href=\"https:\/\/git-scm.com\/docs\/git-submodule\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n oficial de git submodule<\/a><\/p>\n<p><a href=\"https:\/\/docs.github.com\/en\/repositories\/working-with-files\/managing-large-files\/about-git-submodules\" target=\"_blank\" rel=\"noopener\">GitHub Docs: about Git submodules<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.<\/p>\n","protected":false},"author":1,"featured_media":1523,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[180],"tags":[334],"class_list":["post-1522","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-git","tag-git-submodule"],"_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.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP<\/title>\n<meta name=\"description\" content=\"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.\" \/>\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-trabajar-con-submodulos-en-git-git-submodule\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP\" \/>\n<meta property=\"og:description\" content=\"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/\" \/>\n<meta property=\"og:site_name\" content=\"Ver mi IP\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-07T07:57:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-07T07:57:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.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-trabajar-con-submodulos-en-git-git-submodule\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/\"},\"author\":{\"name\":\"Xose de la Paz\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#\\\/schema\\\/person\\\/0617918e61a75dc2d11c09238bf84200\"},\"headline\":\"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)\",\"datePublished\":\"2026-10-07T07:57:05+00:00\",\"dateModified\":\"2026-10-07T07:57:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/\"},\"wordCount\":1240,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/output1-2.png\",\"keywords\":[\"git submodule\"],\"articleSection\":[\"GIT\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/\",\"name\":\"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/output1-2.png\",\"datePublished\":\"2026-10-07T07:57:05+00:00\",\"dateModified\":\"2026-10-07T07:57:06+00:00\",\"description\":\"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/output1-2.png\",\"contentUrl\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/output1-2.png\",\"width\":1536,\"height\":1024,\"caption\":\"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/como-trabajar-con-submodulos-en-git-git-submodule\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/vermiip.es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)\"}]},{\"@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 trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP","description":"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.","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-trabajar-con-submodulos-en-git-git-submodule\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP","og_description":"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.","og_url":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/","og_site_name":"Ver mi IP","article_published_time":"2026-10-07T07:57:05+00:00","article_modified_time":"2026-10-07T07:57:06+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.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-trabajar-con-submodulos-en-git-git-submodule\/#article","isPartOf":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/"},"author":{"name":"Xose de la Paz","@id":"https:\/\/vermiip.es\/blog\/#\/schema\/person\/0617918e61a75dc2d11c09238bf84200"},"headline":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)","datePublished":"2026-10-07T07:57:05+00:00","dateModified":"2026-10-07T07:57:06+00:00","mainEntityOfPage":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/"},"wordCount":1240,"commentCount":0,"publisher":{"@id":"https:\/\/vermiip.es\/blog\/#organization"},"image":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#primaryimage"},"thumbnailUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.png","keywords":["git submodule"],"articleSection":["GIT"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/","url":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/","name":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule) - Ver mi IP","isPartOf":{"@id":"https:\/\/vermiip.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#primaryimage"},"image":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#primaryimage"},"thumbnailUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.png","datePublished":"2026-10-07T07:57:05+00:00","dateModified":"2026-10-07T07:57:06+00:00","description":"Aprende qu\u00e9 son los subm\u00f3dulos de Git, cu\u00e1ndo usarlos, c\u00f3mo a\u00f1adirlos, actualizarlos y evitar errores comunes en proyectos complejos.","breadcrumb":{"@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#primaryimage","url":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.png","contentUrl":"https:\/\/vermiip.es\/blog\/wp-content\/uploads\/2026\/10\/output1-2.png","width":1536,"height":1024,"caption":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)"},{"@type":"BreadcrumbList","@id":"https:\/\/vermiip.es\/blog\/como-trabajar-con-submodulos-en-git-git-submodule\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/vermiip.es\/blog\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo trabajar con subm\u00f3dulos en Git (git submodule)"}]},{"@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\/1522","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=1522"}],"version-history":[{"count":1,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts\/1522\/revisions"}],"predecessor-version":[{"id":1527,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/posts\/1522\/revisions\/1527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/media\/1523"}],"wp:attachment":[{"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/media?parent=1522"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/categories?post=1522"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vermiip.es\/blog\/wp-json\/wp\/v2\/tags?post=1522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}