3 votes

Quel est l'avantage de spécifier une branche pour un sous-module ?

Lecture de la documentation du git submodule j'ai découvert que l'on peut spécifier une branche pour un sous-module en utilisant la commande

git submodule set-branch -branch <branch name> -- <submodule path>

Cela se traduit par une entrée de configuration dans le fichier .gitmodules fichier

> git config --file .gitmodules --get-regex branch
...
submodule.<submodule name>.branch = <branch name>

Cependant, la documentation ne décrit pas à quoi servent ces données. Les sous-modules sont toujours extraits dans l'état de tête détachée et je n'ai pas réussi à trouver un moyen d'utiliser cette information pour faire un checkout pour le sous-module à partir du dépôt parent qui met le sous-module dans un état qui suit une branche sans faire un checkout dans le sous-module directement.

Quel est l'avantage de fournir cette information (autre que l'intérêt de l'entreprise) ? .gitmodules contenant des informations qui pourraient être récupérées et utilisées par mon propre script) ? (Ou est-ce que j'ai simplement fait l'initialisation/la mise à jour des sous-modules de la mauvaise façon ?)

4voto

HoD Points 3047

Si vous ajoutez le submodule avec l'option -branch, vous pouvez utiliser l'option --remote pour mettre à jour votre submodule au dernier commit de cette branche.

git submodule add -branch example URLHERE 
git submodule init
git submodule update --recursive --remote

1voto

harrymc Points 394411

On utilisera des submodules git afin de maintenir une gestion stricte des versions de vos dépendances externes.

Les submodules Git permettent de conserver, en tant que sous-répertoire de votre référentiel, un autre dépôt à un instant précis dans le temps, en incorporant et en suivant ainsi l'historique des versions du code externe.

Un submodule git pointe vers un commit spécifique dans un dépôt externe. Il est statique et ne suit que les commit spécifiques, mais il ne suit pas les réfs ou branches git et n'est pas automatiquement mis à jour. ne suit pas les refs git ou les branches et n'est pas automatiquement mis à jour lorsque ce référentiel est mis à jour. C'est la raison même pour laquelle on utiliserait des branches.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X