2011-11-17 12 views
6

Ho un repository con un sottomodulo. Per me, questo sottomodulo è di sola lettura, quindi sto usando submodule.Module.ignore = dirty.Ignora stato submodule dirty su commit

Questo funziona bene per 'stato git', ma quando commetto, l'intero sottomodulo viene scansionato e nei commenti di git posso vedere che è sporco.

C'è un modo per evitare questo?

risposta

2

Se davvero non vuole vedere le modifiche al modulo, è possibile aggiungere una riga al .git/info/escludere all'interno del modulo con un '*' modello.

Ciò comporterà che il sottomodulo si riferisca sempre come pulito, indipendentemente da cosa è cambiato.

echo "*" >> path/to/submodule/.git/info/exclude 
+1

si potrebbe desiderare di fuggire che '' * se per prevenire l'espansione della shell. –

+0

Grazie - risolto. – Eric

+0

Questo aiuta, ma impedisce anche di vedere le modifiche dall'interno del sottomodulo. Voglio solo li ignorato esternamente ... – orgads

-1

Probabilmente si desidera modificare il file .git/info/exclude, ad aggiungere un motivo per essere ignorato. Ma per un sottomodulo, questo non funzionerà. Invece, dovresti modificare .git/submodule_foo/info/exclude, dalla radice del repository Git.

Questo è perché, in nuove versioni di Git, il percorso submodule_foo/.git è un file, non è una directory. Il suo contenuto ci permette di sapere dove i file .git per il modulo sono:

gitdir: ../.git/modules/submodule_foo 
+0

Questo non è correlato alla domanda. La domanda riguardava il fatto di ignorare completamente lo stato del sottomodulo interno mentre si effettuava il commit nel supermodulo. – orgads

Problemi correlati