Tabla de Contenidos
Submódulos
Sección perteneciente al curso Control de versiones con Git Avanzado.
Introducción
A veces estaremos desarrollando una aplicación modular que puede tener partes de código que están compartidas con otras aplicaciones o en las que hay un grupo de desarrolladores que solo toca cierto código. En estos casos, tener un solo repositorio git para toda la aplicación, implica que todos los desarrolladores estén tocando un mismo código que podría estar separado.
Para esto, git ofrece los submódulos: repositorios git, dentro de otro repositorio git. Un repositorio git “padre” que está controlando los cambios en repositorios “hijo”. Estos repositorios hijo pueden estar aislados entre sí y no saber nada del padre.
Repositorios anidados
Tener repositorios dentro de otros (repositorios anidados) de manera independiente es posible con git gracias a los submódulos.
Útil para cuando hay jerarquía de proyectos/módulos.
Hay poca documentación sobre los submódulos y es muy técnica lo que hace que sea algo difícil manejarse con ellos
Como crearlos y como trabajar con ellos
Añadir submódulo al módulo padre
git submodule add <URL> [subcarpeta]
El submódulo tendrá su propio repositorio remoto, que será totalmente independiente del repositorio padre. El padre tendrá referencias a él.
El repositorio padre generará un archivo .gitmodules con información sobre los submódulos que le hemos añadido.
Clonar un módulo padre con sus submódulos
Método 1:
git clone <URL> --recurse-submodules
Método 2:
git clone <URL> git submodule init git submodule update
Actualizar submódulos (desde repositorio padre)
git pull git submodule update [nombre_submódulo]
Conclusión
Recursos
- Capítulo del libro Pro Git sobre submódulos:
