Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:control_version_git_avanzado:submodulos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:cursos:control_version_git_avanzado:submodulos [2023/05/29 11:21] – [Submódulos] tempwininformatica:programacion:cursos:control_version_git_avanzado:submodulos [2023/06/16 16:02] (actual) tempwin
Línea 2: Línea 2:
  
 Sección perteneciente al curso [[informatica:programacion:cursos:control_version_git_avanzado|Control de versiones con Git Avanzado]]. Sección perteneciente al curso [[informatica:programacion:cursos:control_version_git_avanzado|Control de versiones con Git Avanzado]].
 +
 ===== Introducción ===== ===== 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 ===== ===== 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.
 +
 +<WRAP center round important 60%>
 +Hay poca documentación sobre los submódulos y es muy técnica lo que hace que sea algo difícil manejarse con ellos
 +</WRAP>
 +
 ===== Como crearlos y como trabajar con ellos ===== ===== Como crearlos y como trabajar con ellos =====
 +
 +==== Añadir submódulo al módulo padre ====
 +
 +<code>
 +git submodule add <URL> [subcarpeta]
 +</code>
 +
 +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:
 +
 +<code>
 +git clone <URL> --recurse-submodules
 +</code>
 +
 +Método 2:
 +
 +<code>
 +git clone <URL>
 +git submodule init
 +git submodule update
 +</code>
 +
 +==== Actualizar submódulos (desde repositorio padre) ====
 +
 +<code>
 +git pull
 +git submodule update [nombre_submódulo]
 +</code>
  
 ===== Conclusión ===== ===== Conclusión =====
informatica/programacion/cursos/control_version_git_avanzado/submodulos.1685352116.txt.gz · Última modificación: por tempwin