¿Es posible que un submódulo git esté hecho de varios otros submódulos git, y que el supergit repo obtenga el contenido de cada submódulo?
He intentado hacer esto usando el enfoque obvio / ingenuo de crear un repositorio git que contenga varios submódulos.
Luego, agregue este repositorio de git a otro repositorio de git como submódulo.
Luego intenta extraer desde el directorio raíz del super git repo por git submodule init
y luego git submodule update
. Pero esto no puede recuperar los sub-submódulos.
git
git-submodules
primer respondedor
fuente
fuente
Respuestas:
Como se menciona en Retrospectivamente, agregue --recursive a un repositorio git
Deberia trabajar.
fuente
git submodule init; git submodule update --recursive
era sinónimo de lo anterior, pero no lo es.--init
bandera, los submódulos, dentro de uno de mis submódulos, simplemente se inicializan a versiones antiguas, no a las más actuales.git submodule foreach git pull origin master
, y funciona parcialmente: los submódulos se actualizan, pero a vecesHEAD
se separa y para los submódulos dentro de los submódulos, no puedo confirmar los cambios de mi submódulo directo porque tiene "contenido modificado" no "nuevos compromisos" (ya que sus propios submódulos tienen "nuevos commits" y se actualizan).Como comenta Sridhar a continuación, desde Git1.6.5 +,
git clone --recursive
ahora es la alternativa oficial, descrita en:git clone --submodule
"--recursive
a un repositorio de git "(con el
alias $ git config --global alias.cloner = 'clone --recursive'
, que evita sombrear elgit clone
comando normal )inamiy señala correctamente el
git submodule update --init --recursive
comando, introducido en commit b13fd5c , nuevamente en git1.6.5, por Johan Herland (jherland
) .Y IceFire agrega en los comentarios :
(respuesta original anterior)
De acuerdo con la página del manual
debería actualizar cualquier submódulo anidado. Pero la parte init puede no ser recursiva.
Dependiendo de su versión de Git, podría recurrir a un enfoque más "scripting", con este artículo Actualización periódica de submódulos de Git que permite el inicio y la actualización recursiva:
fuente
git clone --recursive
suficiente?git submodule update --init <submoduleName>
es el camino a seguir; Llegué aquí cuando buscaba esta respuesta