171 votes

Git sous-module push

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?

185voto

manojlds Points 96599

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"
 

151voto

VonC Points 414372

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X