2015-09-08 1 views
5

Je dois exécuter la commande:définir une configuration Git récursive pour tous les sous-modules

git config core.filemode false 

Le problème est que j'ai quelques projets avec au moins dix sous-modules chacun. Pour une raison quelconque, tous les sous-modules ont cette valeur définie sur true, donc je devrais supprimer/mettre à jour cette configuration manuellement.

Existe-t-il un moyen de dire à Git de définir une valeur de configuration pour tous les sous-modules? Ou supprimez-le des sous-modules afin que les paramètres du repo contenant ne soient pas écrasés?

Répondre

6

Vous pouvez utiliser la commande git submodule foreach pour cela: https://www.kernel.org/pub/software/scm/git/docs/v1.6.1.3/git-submodule.html

Vous pouvez fournir une commande shell arbitraire comme paramètre, dans votre cas quelque chose comme ceci:

git submodule foreach --recursive git config core.filemode false 

Cela exécutera git config core.filemode false dans chacune des les sous-modules du repo Git actuel.

+0

Cela peut être appliqué à beaucoup de choses, parfait, merci! –

+1

Ceci ne s'applique pas aux sous-modules en profondeur ≥ 2 (sous-modules de sous-modules ..) donc '--recursive' doit être ajouté →' git submodule foreach --récursif git config core.filemode false'. – wottpal

+0

Merci, ajouté à la réponse. – nwinkler