Je ne comprends pas de la documentation qu'est-ce que git submodule sync
faire. S'il vous plaît, expliquez.
Git stocke des informations sur les sous-modules à deux endroits. Le premier se trouve dans un fichier appelé .gitmodules
, qui est archivé dans le référentiel git. Les modifications apportées à ce fichier sont propagées à d'autres référentiels.
L'autre emplacement se trouve dans .git/config
, et c'est là que git regarde réellement lors de l'exécution de la plupart des commandes.
Imaginez donc que vous avez travaillé sur un projet pendant un certain temps, et il y a un sous-module appelé foo
. Les fichiers de ce sous-module sont extraits d'une URL, peu importe où. À un certain moment, cependant, cette URL change. Peut-être que cela change pour que le sous-module soit extrait d'un autre serveur, ou d'un chemin différent ou autre. Lorsque vous mettez à jour votre référentiel, votre copie du .gitmodules
le fichier sera mis à jour, mais pas votre .git/config
fichier; vous vérifieriez toujours à partir de l'ancienne URL. Lorsque vous souhaitez démarrer la vérification à partir de la nouvelle URL, vous exécutez git submodule sync
pour copier la nouvelle configuration depuis .gitmodules
à .git/config
. Git ne le fait pas automatiquement car vous avez peut-être apporté vos propres modifications à votre configuration, et il ne voudrait pas les écraser.