Estamos moviendo nuestro (enorme) proyecto a git y estamos pensando en usar submódulos. Nuestro plan es tener tres cabezas diferentes en el superproyecto: lanzamiento, estable, más reciente. Los líderes del proyecto manejarán el lanzamiento y las ramas estables. Moverán los submódulos según sea necesario.
El problema es la "última" cabeza. Nos gustaría que la cabeza del "último" superproyecto rastree las ramas maestras de todos los submódulos (automáticamente). Y también sería genial si mostrara la historia de todos los commits al submódulo.
He visto gitslave, pero no es exactamente lo que queremos. ¿Alguna sugerencia?
git
git-submodules
git-track
l.thee.a
fuente
fuente
Respuestas:
Actualización de marzo de 2013
Git 1.8.2 agregó la posibilidad de rastrear ramas.
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:
Ver
git submodule
página del manual :Ver commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Si--branch
se da, regístrelo en.gitmodules
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:
gitslave (que ya viste) parece ser la mejor opción, incluso para la operación de confirmación .
Otras alternativas se detallan aquí .
fuente
git config -f .gitmodules submodule.<path>.branch <branch>
. Agregue todo, comprométase y empuje.--remote
etiqueta si no desea obtener cabezas separadas cuando actualiza, preguntándose por qué parece que su código recién extraído está detrás del maestro.git submodule update
comando diciéndole qué confirmación (es decir, la confirmación más reciente en el maestro) para actualizar el submódulo, y no automáticamente que el repositorio principal actualice qué commit es señalado por el submódulo en el tiempo de clonación?