Não, você não precisa adicionar seu submódulo ao seu .gitignore
: o que o pai verá do seu submódulo é um gitlink (uma entrada especialmode 160000
).
Isso significa: qualquer mudança feita diretamente em um submódulo precisa ser seguida por um commit no diretório pai.
Dessa forma, o diretório pai gravará o commit correto para o estado do submódulo: Esse commit é o "gitlink" mencionado acima;
Você pode ler mais sobre essa política em " git submodule update (true nature of submodules) ".
A ideia principal por trás dos submódulos é uma abordagem baseada em componentes , onde você faz referência a outros repos em commits específicos. Mas se você alterar alguma coisa nesses submódulos, também precisará atualizar essas referências no repositório pai.
Observe que com Git 2.13 (2º trimestre de 2017), embora não ignore o gitlink, você ainda pode ignorar o submódulo com:
git config submodule.<name>.active false
Veja mais em " Ignorar novos commits para o submódulo git ".
Nota: com Git 2.15.x / 2.16 (Q1 2018), ignorar um submódulo é mais preciso.
" git status --ignored --untracked
" não parou em uma árvore de trabalho de um projeto separado que está embutido em um diretório ignorado e arquivos listados nesse outro projeto, em vez de apenas mostrar o próprio diretório como ignorado.
Consulte commit fadb482 (25 de outubro de 2017) por Johannes Schindelin ( dscho
) .
(Incorporado por Junio C Hamano - gitster
- no commit da7996a , 06 de novembro de 2017)
status
: não se confunda com submódulos em diretórios excluídos
Passamos meticulosamente o exclude
sinalizador para a treat_directory()
função para que possamos indicar que os arquivos nele são excluídos em vez de não rastreados quando recorrem.
Mas ainda não tratamos os submódulos da mesma maneira.
Por causa disso, git status --ignored --untracked
com um submódulo
submodule
em um gitignored tracked/
mostraria o submódulo na seção " Untracked files
", por exemplo
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
Em vez disso, gostaríamos de mostrar o submódulo na seção " Ignored files
":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/