É porque os registros Git que confirmam (não uma ramificação ou uma tag, exatamente uma confirmação representada no hash SHA-1) devem ser retirados para cada submódulo. Se você alterar algo no diretório do submódulo, o Git o detectará e pedirá que você confirme essas alterações no repositório de nível superior.
Execute git diff
no repositório de nível superior para mostrar o que realmente mudou o Git pensa. Se você já fez alguns commit no seu submódulo (portanto, "limpo" no submódulo), ele relatará a alteração de hash do 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
Caso contrário, ele mostra a -dirty
alteração de hash que você não pode preparar ou confirmar no repositório de nível superior. git status
também afirma que o submódulo possui conteúdo não 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 atualizar quais registros de confirmação devem ser retirados do submódulo, você precisa git confirmar o submódulo, além de confirmar as alterações no submódulo:
git add src/repo
wiki
como um submódulo em um diretório wiki . Eu não quero que nenhuma das minhas alterações nowiki
(ou seja, no diretório wiki ) reflita no meu repositório principal / código. Devo apenas adicionar o.gitmodules
caminho no meu.gitignore
repositório principal? Como devo fazer isso?