Actualización de marzo de 2013
Git 1.8.2 agregó la posibilidad de rastrear ramas.
" git submodule
" comenzó a aprender un nuevo modo para integrarse con la punta de la rama remota (en lugar de integrarse con la confirmación registrada en el enlace de git del superproyecto).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Si ya tenía un submódulo presente que ahora desea rastrear una rama, vea " cómo hacer que un submódulo existente rastree una rama ".
Consulte también el tutorial de Vogella sobre submódulos para obtener información general sobre submódulos.
Nota:
git submodule add -b . [URL to Git repo];
^^^
Ver git submodule
página del manual :
Se .
utiliza un valor especial de para indicar que el nombre de la rama en el submódulo debe ser el mismo nombre que la rama actual en el repositorio actual .
Ver commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Si --branch
se da, regístrelo en.gitmodules
Esto le permite grabar fácilmente una submodule.<name>.branch
opción .gitmodules
cuando agrega un nuevo submódulo. Con este parche
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
reduce a
$ git submodule add -b <branch> <repository> [<path>]
Esto significa que las futuras llamadas a
$ git submodule update --remote ...
recibirá actualizaciones de la misma rama que usó para inicializar el submódulo, que generalmente es lo que desea.
Firmado por: W. Trevor King
Respuesta original (febrero de 2012):
Un submódulo es una única confirmación a la que hace referencia un repositorio principal.
Como es un repositorio de Git por sí solo, se puede acceder al "historial de todos los commits" a través de un git log
submódulo dentro de ese submódulo.
Entonces, para que un padre rastree automáticamente la última confirmación de una rama determinada de un submódulo, necesitaría:
- cd en el submódulo
- git fetch / pull para asegurarse de que tiene los últimos commits en la rama correcta
- cd de vuelta en el repositorio principal
- agregue y confirme para registrar la nueva confirmación del submódulo.
gitslave (que ya viste) parece ser la mejor opción, incluso para la operación de confirmación .
Es un poco molesto realizar cambios en el submódulo debido al requisito de verificar la rama del submódulo correcto, realizar el cambio, confirmar y luego ir al superproyecto y confirmar el compromiso (o al menos registrar la nueva ubicación del submódulo). submódulo).
Otras alternativas se detallan aquí .