tipos tag qué existen etiquetas crear git git-submodules

tag - qué tipos de etiquetas existen en git



¿Cómo cambiar un submódulo de git para que apunte a una subcarpeta? (3)

Lo que quiere hacer es crear una rama en el submódulo y mover la carpeta hacia arriba y eliminar lo que no necesita. A continuación, puede administrar esa rama en su lugar. Si desea aumentar sus cambios, primero debería poder fusionarlos. Git sabrá que movió los archivos y realizará la fusión con éxito.

Espero que esto ayude.

Pasando por el tutorial de SubModule , 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 debería usar en lugar de https://github.com/boto/boto.git ? Después de cambiar la URL, ¿debo eliminar la carpeta del boto localmente y volver a tirar?


Me temo que la URL para los submódulos siempre apunta al repositorio; no puede especificar que solo quiere una subcarpeta de un repositorio, de la misma manera que git no admite "clones estrechos" en general.

Si no puede vivir teniendo todo el repositorio como un submódulo, siempre puede crear un nuevo repositorio clonado desde boto y luego configurar un trabajo cron para:

  1. git fetch ese repositorio en un directorio
  2. Utilice git filter-branch para actualizar una rama donde el subdirectorio está en el nivel superior.
  3. Agregue esa rama del repositorio como el submódulo. Sin embargo, eso es un poco complicado y mi preferencia sería vivir con tener todo el repositorio como un submódulo.

No puedes clonar solo una parte de un repositorio. Esto es porque git trata el repositorio como un objeto completo: cuando lo obtienes, lo consigues 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.