Difference between revisions of "Git, Submodules"

From Wiki de Caballero
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
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''==
<source lang="bash">git submodule add [remote] [ubicación adentro del proyecto]</source>
==Clonar el repositorio y sus submodulos==
<source lang="bash">
git clone --recursive -j8 [url repositorio]
# -j8 obtiene hasta 8 repositorios en paralelo para hacer la carga más expedita
</source>
==Importar los submodulos de un repositorio ya clonado==
<source lang="bash">
git submodule update --init --recursive
</source>


==Configuraciones Importantes==
==Configuraciones Importantes==
Line 4: Line 26:
Al momento de hacer <code>git status</code>, 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:
Al momento de hacer <code>git status</code>, 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:
<source lang="bash">git config --global status.submoduleSummary true</source>
<source lang="bash">git config --global status.submoduleSummary true</source>
===Más información en diff===
<source lang="bash">git config --global diff.submodule log</source>


==Referencias==
==Referencias==
* [https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407 Mastering Git submodules - Medium]
* [https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407 Mastering Git submodules - Medium]
[[Category:Git]]

Latest revision as of 02:12, 14 October 2017

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