No, non è necessario aggiungere il tuo sottomodulo al tuo .gitignore
: quello che il genitore vedrà dal tuo sottomodulo è un gitlink (una voce speciale,mode 160000
).
Ciò significa: qualsiasi modifica effettuata direttamente in un sottomodulo deve essere seguita da un commit nella directory padre.
In questo modo, la directory genitore registrerà il commit corretto per lo stato del sottomodulo: Quel commit è il "gitlink" menzionato sopra;
Puoi leggere ulteriori informazioni su questa politica in " aggiornamento del sottomodulo git (vera natura dei sottomoduli) ".
L'idea principale alla base dei sottomoduli è un approccio basato sui componenti , in cui si fa riferimento ad altri repository in specifici commit. Ma se modifichi qualcosa in quei sottomoduli, devi aggiornare anche quei riferimenti nel repository principale.
Nota che con Git 2.13 (Q2 2017), pur non ignorando il gitlink, puoi comunque ignorare il sottomodulo con:
git config submodule.<name>.active false
Vedere di più in " Ignora i nuovi commit per il sottomodulo git ".
Nota: con Git 2.15.x / 2.16 (Q1 2018), ignorare un sottomodulo è più preciso.
" git status --ignored --untracked
" non si è fermato a un albero funzionante di un progetto separato che è incorporato in una directory ignorata e ha elencato i file in quell'altro progetto, invece di mostrare semplicemente la directory stessa come ignorata.
Vedere commit fadb482 (25 ottobre 2017) di Johannes Schindelin ( dscho
) .
(Fuso da Junio C Hamano - gitster
- in commit da7996a , 06 nov 2017)
status
: non farti confondere dai sottomoduli nelle directory escluse
Passiamo meticolosamente il exclude
flag alla treat_directory()
funzione in modo da poter indicare che i file in essa contenuti sono esclusi invece che non tracciati quando si ricorre.
Ma non abbiamo ancora trattato i sottomoduli allo stesso modo.
Per questo motivo , git status --ignored --untracked
con un sottomodulo
submodule
in un gitignored tracked/
mostrerebbe il sottomodulo nella sezione " Untracked files
", ad es.
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
tracked/submodule/
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/initial.t
Invece, vorremmo che mostrasse il sottomodulo nella sezione " Ignored files
":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/