Git, Submodules

From Wiki de Flat Estrategia Digital
Jump to: navigation, search

Los submodules son una forma de importar proyectos de Git adentro de otro proyecto Git. Al hablar de submodule se hace referencia al proyecto que está adentro de otro.

Importante

Contenedor y contenido actúan independientemente

El repositorio y el submodule actúan como repositorios independientes aunque el submodule esté adentro del repositorio. Esto es importante ya que si se modifica el submodule hay que tratar esos cambios en ese repositorio. Además, al cambiar el submodule el repositorio contenedor tiene que se modificado para que sepa que el submodule cambió.

Referencia a un punto de la historia del submodule

Al crear un submodule se guarda la referencia a qué commit se usa, es decir que si se actualiza el proyecto que corresponde al submodule, este no se actualiza directamente en un proyecto que lo use como submodule.

Agregar un submodule

git submodule add [remote] [ubicación adentro del proyecto]

Clonar el repositorio y sus submodulos

git clone --recursive -j8 [url repositorio]
# -j8 obtiene hasta 8 repositorios en paralelo para hacer la carga más expedita

Importar los submodulos de un repositorio ya clonado

git submodule update --init --recursive

Configuraciones Importantes

Configuración para git status

Al momento de hacer git status, por defecto no se muestra información de los módulos, para esto se puede configurar globalmente que se muestre un resumen de los submodulos:

git config --global status.submoduleSummary true

Más información en diff

git config --global diff.submodule log

Referencias

Facebook Comments