Mise À Jour Mars 2013
Git 1.8.2 ajout de la possibilité de suivre des branches.
"git submodule
" a commencé l'apprentissage d'un nouveau mode permettant de l'intégrer à l'extrémité de la branche à distance (par opposition à l'intégration de la validation enregistrée dans le superproject de gitlink).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Voir aussi la Vogella de tutoriel sur les submodules.
Voir "Comment faire un sous-module existant suivre une branche" (si vous en avait un sous-module déjà présent vous le souhaitez, maintenant, la piste d'une branche)
Voir commettre b928922727d6691a3bdc28160f93f25712c565f6:
submodule add
: Si --branch
est donné, en .gitmodules
Cela vous permet d'enregistrer facilement un submodule.<name>.branch
option en .gitmodules
lorsque vous ajoutez un nouveau sous-module. Avec ce patch,
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
réduit à
$ git submodule add -b <branch> <repository> [<path>]
Cela signifie que les futurs appels à l'
$ git submodule update --remote ...
obtenez les mises à jour de la même branche que vous avez utilisé pour initialiser le sous-module, ce qui est généralement ce que vous voulez.
Signed-off-by: W. Trevor King
Origine de la réponse (février 2012):
Un sous-module est un seul commit référencé par un parent repo.
Depuis, c'est un Git rpeo sur son propre, "l'histoire de tous les commits", est accessible par un git log
dans ce sous-module.
Donc, pour un parent de suivre automatiquement le dernier commit de la branche donnée d'un sous-module, il faut:
- cd dans le sous-module
- git fetch/pull pour s'assurer qu'il dispose bien de la dernière s'engage sur la branche de droite
- cd de retour dans la mère repo
- ajouter et validez pour enregistrer le nouveau commit si le sous-module.
gitslave (que vous avez déjà regardé) semble être le meilleur ajustement, y compris pour l'opération de validation.
C'est un peu ennuyeux pour apporter des modifications à la sous-module en raison de la nécessité de vérifier sur le bon sous-module de la branche, de faire le changement, s'engager, et ensuite aller dans les superproject et valider le valider (ou au moins enregistrer le nouvel emplacement de la sous-module).
D'autres solutions sont détaillées ici.