Si je modifie un sous-module, puis-je remettre le commit à l'origine du sous-module ou cela nécessiterait-il un clone? Si clone, puis-je stocker un clone dans un autre référentiel?
Réponses
Trop de publicités?Un sous-module n'est rien d'autre qu'un clone d'un dépôt git dans un autre dépôt avec des métadonnées supplémentaires (entrée de l'arborescence gitlink, fichier .gitmodules)
$ cd your_submodule
$ git checkout master
<hack,edit>
$ git commit -a -m "commit in submodule"
$ git push
$ cd ..
$ git add your_submodule
$ git commit -m "Updated submodule"
A noter que depuis git1.7.11 ([ANNONCER] Git 1.7.11.la rc1 et la note de version, juin 2012) mentionne:
"
git push --recurse-submodules
" appris à éventuellement regarder dans les histoires de submodules lié à la superproject et le repousser.
Probablement fait après ce patch et l' --on-demand
option:
recurse-submodules=<check|on-demand>::
Assurez-vous que tous les sous-module s'engage utilisé par les révisions à être poussé sont disponibles sur un suivi à distance de la branche.
- Si
check
est utilisé, il doit être vérifié que tous les sous-module s'engage qui a changé dans les révisions pour être poussé sont disponibles sur une télécommande.
Sinon, le push sera annulée et la sortie avec un état différent de zéro. - Si
on-demand
est utilisé, tous les submodules qui a changé dans les révisions pour être poussé sera poussé.
Si la demande n'a pas été en mesure de pousser toutes les révisions nécessaires, il sera également annulée et la sortie avec un état différent de zéro.
Ainsi vous de pousser tout en un seul aller avec (de la mère repo):
git push --recurse-submodules=on-demand