web-dev-qa-db-fra.com

git submodule sync command - à quoi ça sert?

Je ne comprends pas de la documentation qu'est-ce que git submodule sync faire. S'il vous plaît, expliquez.

31
Narek

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.

38
db48x