2015-09-08 15 views
5

ho bisogno di eseguire il comando:impostare una configurazione Git ricorsivamente per tutti i sottomoduli

git config core.filemode false 

Il problema è che ho un paio di progetti con almeno dieci moduli ciascuno. Per qualche motivo, tutti i sottomoduli hanno quel valore impostato su true, quindi dovrei rimuovere/aggiornare manualmente quella configurazione.

C'è un modo per dire a Git di impostare un valore di configurazione per tutti i sottomoduli?

Oppure rimuoverlo dai sottomoduli in modo che le impostazioni del repository contenente non vengano sovrascritte?

risposta

6

È possibile utilizzare il comando git submodule foreach per questo: https://www.kernel.org/pub/software/scm/git/docs/v1.6.1.3/git-submodule.html

è possibile fornire un comando arbitrario shell come parametro, nel tuo caso qualcosa di simile:

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

Questo eseguirà git config core.filemode false in ciascuna delle i sottomoduli dell'attuale repository Git.

+0

Questo può essere applicato a molte cose, perfetto, grazie! –

+1

Questo non si applica ai sottomoduli in profondità ≥ 2 (sottomoduli di sottomoduli ..) perciò '--recursive' deve essere aggiunto →' git submodule foreach --recursive git config core.filemode false'. – wottpal

+0

Grazie, aggiunto alla risposta. – nwinkler

Problemi correlati