Hojeando el tutorial submódulo , creé un submódulo del proyecto boto . Luego, descubrí que en realidad solo necesito un subconjunto de este proyecto, específicamente, la carpeta boto .
Me gustaría cambiar mi submódulo para que apunte a esta carpeta. Cuando miro en .gitmodules, veo
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
¿Qué URL debo usar en lugar de https://github.com/boto/boto.git ? Después de cambiar la URL, ¿debo eliminar la carpeta boto localmente y volver a extraer?
git
git-submodules
destripador234
fuente
fuente
git subtree
Respuestas:
Me temo que la URL de los submódulos siempre apunta al repositorio; no puedes especificar que solo quieres una subcarpeta de un repositorio, de la misma manera que git no admite "clones estrechos" en general.
Si no puede vivir con tener todo el repositorio como un submódulo, siempre puede crear un nuevo repositorio que se clone de boto y luego configurar un trabajo cron para:
git fetch
ese repositorio en un directoriogit filter-branch
para actualizar una rama donde el subdirectorio está en el nivel superior.fuente
No puede clonar solo una parte de un repositorio. Esto se debe a que git trata el repositorio como un objeto completo: cuando lo obtienes, lo obtienes todo .
Entonces, la solución aquí sería buscar el submódulo en otro directorio, luego usar un enlace simbólico para lograr su objetivo.
fuente
ln -s
como en Linux)Lo que quiere hacer es crear una rama en el submódulo y mover la carpeta hacia arriba y eliminar lo que no necesita. Luego, puede administrar esa rama en su lugar. Si desea aumentar los cambios, primero debería poder realizar la fusión hacia atrás. Git sabrá que movió los archivos y fusionó correctamente.
Espero que esto ayude.
fuente