Non, vous n'avez pas besoin d'ajouter votre sous-module à votre .gitignore
: ce que le parent verra de votre sous-module est un gitlink (a entrée spéciale, mode 160000
).
Cela signifie que toute modification effectuée directement dans un sous-module doit être suivie d'une validation dans le répertoire parent.
De cette façon, le répertoire parent enregistrera le bon commit pour l'état du sous-module : Ce commit est le "gitlink" mentionné ci-dessus ;
Pour en savoir plus sur cette politique, consultez la rubrique " git submodule update (vraie nature des submodules) ".
L'idée principale des sous-modules est une approche par composants où vous faites référence à d'autres dépôts à des commits spécifiques. Mais si vous changez quoi que ce soit dans ces sous-modules, vous devez également mettre à jour ces références dans le dépôt parent.
Notez qu'avec Git 2.13 (Q2 2017), alors que l'option no en ignorant le lien git, vous pouvez toujours ignorer le sous-module avec :
git config submodule.<name>.active false
Voir plus sur " Ignorer les nouveaux commits pour le sous-module git ".
Note : avec Git 2.15.x/2.16 (Q1 2018), ignorer un sous-module est plus précis.
" git status --ignored --untracked
"ne s'est pas arrêté à l'arbre de travail d'un projet séparé qui est intégré dans un répertoire ignoré et a listé les fichiers de cet autre projet, au lieu d'afficher le répertoire lui-même comme étant ignoré.
Véase commit fadb482 (25 Oct 2017) par Johannes Schindelin ( dscho
) .
(fusionné par Junio C Hamano -- gitster
-- en commit da7996a , 06 Nov 2017)
status
Les sous-modules dans les répertoires exclus : ne pas s'embrouiller avec les sous-modules dans les répertoires exclus
Nous passons méticuleusement les exclude
à l'indicateur treat_directory()
afin d'indiquer que les fichiers qu'elle contient sont exclus plutôt que non suivis lors de la récursivité.
Mais nous n'avons pas encore traité les sous-modules de la même manière.
Pour cette raison, git status --ignored --untracked
w submodule
dans un gitignored tracked/
montrerait le sous-menu " Untracked files
section ", par exemple
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
Au lieu de cela, nous voudrions qu'il affiche le sous-module dans l'espace " Ignored files
" section :
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/