No, no es necesario que agregue su submódulo a su .gitignore
: lo que el padre verá en su submódulo es un gitlink (una entrada especialmode 160000
).
Eso significa: cualquier cambio realizado directamente en un submódulo debe ir seguido de una confirmación en el directorio principal.
De esa manera, el directorio padre registrará la confirmación correcta para el estado del submódulo: esa confirmación es el "gitlink" mencionado anteriormente;
Puede leer más sobre esa política en " actualización del submódulo git (verdadera naturaleza de los submódulos) ".
La idea principal detrás de los submódulos es un enfoque basado en componentes , donde hace referencia a otros repositorios en confirmaciones específicas. Pero si cambia algo en esos submódulos, también debe actualizar esas referencias en el repositorio principal.
Tenga en cuenta que con Git 2.13 (Q2 2017), aunque no ignora el gitlink, aún puede ignorar el submódulo con:
git config submodule.<name>.active false
Ver más en " Ignorar nuevas confirmaciones para el submódulo git ".
Nota: con Git 2.15.x / 2.16 (Q1 2018), ignorar un submódulo es más preciso.
" git status --ignored --untracked
" no se detuvo en un árbol de trabajo de un proyecto separado que está incrustado en un directorio ignorado y enumera los archivos en ese otro proyecto, en lugar de simplemente mostrar el directorio como ignorado.
Consulte la confirmación fadb482 (25 de octubre de 2017) de Johannes Schindelin ( dscho
) .
(Combinado por Junio C Hamano - gitster
- en el compromiso da7996a , 06 de noviembre de 2017)
status
: no se confunda con submódulos en directorios excluidos
Pasamos meticulosamente la exclude
bandera a la treat_directory()
función para que podamos indicar que los archivos que contiene se excluyen en lugar de no rastrear cuando se repite.
Pero todavía no tratamos los submódulos de la misma manera.
Por eso, git status --ignored --untracked
con un submódulo
submodule
en un gitignored tracked/
se mostraría el submódulo en la Untracked files
sección " ", por ejemplo
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
En su lugar, querríamos que mostrara el submódulo en la Ignored files
sección " ":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/