Si modifico un submódulo, ¿puedo devolver el commit al origen del submódulo, o eso requeriría un clon? Si es un clon, ¿puedo almacenar un clon dentro de otro repositorio?
git
git-submodules
webjay
fuente
fuente
git config push.recurseSubmodules on-demand
. Entonces un simplegit push
será suficiente para empujar todo (repositorio principal y submódulos). Vea mi respuesta editada a continuación .Respuestas:
Un submódulo no es más que un clon de un repositorio de git dentro de otro repositorio con algunos metadatos adicionales (entrada de árbol de gitlink, archivo .gitmodules)
fuente
gh-pages
sucursal para documentación en un repositorio de github :)Tenga en cuenta que desde git1.7.11 ( [ANUNCIO] Git 1.7.11.rc1 y la nota de lanzamiento , junio de 2012) menciona:
Probablemente hecho después de este parche y la
--on-demand
opción:Entonces, podría empujar todo de una vez con (del repositorio principal) a:
Esta opción solo funciona para un nivel de anidamiento. Los cambios en el submódulo dentro de otro submódulo no se enviarán.
Con git 2.7 (enero de 2016), un simple git push será suficiente para impulsar el repositorio principal ... y todos sus submódulos.
Ver commit d34141c , commit f5c7cd9 (03 dic 2015), commit f5c7cd9 (03 dic 2015) y commit b33a15b (17 nov 2015) por Mike Crowe (
mikecrowe
) .(Fusionada por Junio C Hamano -
gitster
- en commit 5d35d72 , 21 dic 2015)El
git config
documento ahora incluye :Entonces:
Git 2.12 (Q1 2017)
git push --dry-run --recurse-submodules=on-demand
en realidad funcionaráVer commit 0301c82 , commit 1aa7365 (17 de noviembre de 2016) por Brandon Williams (
mbrandonw
) .(Fusionada por Junio C Hamano -
gitster
- en commit 12cf113 , 16 dic 2016)Y aún en Git 2.12, ahora tiene una "
--recurse-submodules=only
" opción para expulsar submódulos sin presionar el superproyecto de nivel superior .Ver commit 225e8bf , commit 6c656c3 , commit 14c01bd (19 dic 2016) por Brandon Williams (
mbrandonw
) .(Fusionada por Junio C Hamano -
gitster
- en commit 792e22e , 31 ene 2017)fuente