Це тому, що записи Git, які здійснюють (не гілка чи тег, точно один коміт, представлений у хеші SHA-1), повинні перевірятися для кожного підмодуля. Якщо ви щось зміните в підмодулі dir, Git виявить це і закликає вас здійснити ці зміни в репортації верхнього рівня.
Запустіть git diff
у сховище верхнього рівня, щоб показати, що насправді змінило думку Git. Якщо ви вже зробили деякі підкоди у своєму підмодулі (таким чином «очистіть» у підмодулі), він повідомляє про хеш-зміну підмодуля.
$ 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
В іншому випадку він показує -dirty
хеш-зміни, які ви не можете встановити або здійснити в сховищі верхнього рівня. git status
також стверджує, що субмодуль має неперевірений / модифікований вміст.
$ 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")
Щоб оновити, які записи фіксів слід перевірити для підмодуля, вам потрібно git здійснити підмодуль на додаток до внесення змін у підмодуль:
git add src/repo
wiki
як підмодуль у вікі каталогу . Я не хочу, щоб будь-які мої зміни зwiki
(тобто каталогу wiki ) відображалися в моєму основному сховищі / коді. Чи варто просто додати.gitmodules
шлях до мого.gitignore
основного сховища? Як мені це робити?