Tengo una biblioteca que se basa en una serie de otros componentes. Configuré el proyecto principal y luego agregué varios submodules usando el submodule git add [url] [path].
El proyecto original funciona bien. Cada vez que agregué un submodule lo cloné en el directory correcto.
- Main project -- Sub project [cloned correctly]
Después de eso, empujé el proyecto original a git. Ahora, cuando clono el proyecto principal, aparecen los directorys secundarios del proyecto pero están vacíos.
- Main project -- Sub project just empty folder
Los .gitmodules se llenan correctamente pero en el proyecto principal recién clonado, la carpeta .git / modules está vacía.
No hay commands como git submodule sync o git submodule update work. Sin embargo, si vuelvo a agregar manualmente los modules, aparecen en los directorys sin tener que volver a downloadlos. Dice:
Reactivating local git directory for submodule
Es casi como si git tuviera los modules almacenados internamente, pero no los agrega al sistema de files.
¿Cuál es la mejor práctica para una situación como esta?
Después de la clonación, debes:
git submodule init git submodule update
O
clone el repository principal y obtenga los submodules al mismo time con:
git clone --recursive URL
estás perdido
git submodule init
en los clones (antes de que puedas ejecutar con éxito la git submodule update
)