Esto se debe a que Git registra qué confirmación (no una rama o una etiqueta, exactamente una confirmación representada en el hash SHA-1) debe verificarse para cada submódulo. Si cambia algo en el directorio de submódulos, Git lo detectará y le instará a confirmar esos cambios en el repositorio de nivel superior.
Ejecute git diff
en el repositorio de nivel superior para mostrar lo que realmente ha cambiado, piensa Git. Si ya ha realizado algunas confirmaciones en su submódulo (por lo tanto, "limpio" en el submódulo), informa el cambio de hash del submódulo.
$ git diff
diff --git a/src/repo b/src/repo
index b0c86e2..a893d84 160000
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit a893d84d323cf411eadf19569d90779610b10280
De lo contrario, muestra un -dirty
cambio hash que no puede organizar o comprometer en el depósito de nivel superior. git status
también afirma que el submódulo tiene contenido no rastreado / modificado.
$ git diff
diff --git a/src/repo b/src/repo
--- a/src/repo
+++ b/src/repo
@@ -1 +1 @@
-Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea
+Subproject commit b0c86e28675c9591df51eedc928f991ca42f5fea-dirty
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: src/repo (untracked content)
no changes added to commit (use "git add" and/or "git commit -a")
Para actualizar qué registros de confirmación deben verificarse para el submódulo, debe confirmar git el submódulo además de confirmar los cambios en el submódulo:
git add src/repo
wiki
como submódulo en un directorio wiki . No quiero que ninguno de mis cambios desdewiki
(es decir, el directorio wiki ) se refleje en mi repositorio principal / código. ¿Debo agregar la.gitmodules
ruta en mi.gitignore
del repositorio principal? ¿Cómo debo hacerlo?