web-dev-qa-db-fra.com

mise à jour du sous-module git - à distance vs git pull

Quelle est la différence entre courir

git submodule update --remote

contre

cd <submodule directoy>
git pull

En supposant que le sous-module était précédemment configuré pour suivre une branche:

git submodule add -b master [URL to Git repo]
36
user2924714

La différence est:

  • git pull ne mettra à jour que votre branche de sous-module, mais il peut s'agir de n'importe quelle branche que vous auriez pu vérifier vous-même dans ce référentiel de sous-module.
  • git submodule update --remote ne mettra à jour que la branche enregistrée dans le .gitmodule, et par défaut, vous vous retrouverez avec une TÊTE détachée, à moins que --rebase ou --merge est spécifié ou la clé submodule.$name.update est défini sur rebase, merge ou none.

Dans les deux cas, vous devez toujours revenir au référentiel parent, ajouter et valider la nouvelle référence de sous-module SHA1.
En effet, dans les deux cas, le SHA1 du sous-module change, ce qui signifie que gitlink (- entrée spéciale dans l'index du référentiel parent, nommé d'après le dossier racine du sous-module) doit être ajouté et validé.

37
VonC