Ні, вам не потрібно додавати свій підмодуль до вашого .gitignore: те, що батьки побачать із вашого підмодуля, - це gitlink ( спеціальний запис,mode 160000 ).
Це означає: будь-яка зміна, безпосередньо внесена в підмодуль, повинна супроводжуватися комітом у батьківському каталозі.
Таким чином, батьківський каталог буде записувати правильний коміт для стану підмодуля: Цей коміт є "gitlink", згаданим вище;
Детальніше про цю політику ви можете прочитати в " Оновлення підмодуля git (справжня природа підмодулів) ".
Основною ідеєю підмодулів є підхід на основі компонентів , де ви посилаєтесь на інші репозиторії в конкретних комітах. Але якщо ви щось змінили в цих підмодулях, вам також потрібно оновити ці посилання в батьківському репо.
Зверніть увагу, що з Git 2.13 (Q2 2017), хоча не ігноруючи gitlink, ви все одно можете ігнорувати підмодуль за допомогою:
git config submodule.<name>.active false
Докладніше див. У розділі " Ігнорувати нові коміти для підмодуля git ".
Примітка: з Git 2.15.x / 2.16 (Q1 2018), ігнорування підмодуля є більш точним.
" git status --ignored --untracked" не зупинився на робочому дереві окремого проекту, який вбудований в ігнорований каталог і перераховані файли в цьому іншому проекті, замість того, щоб просто показати сам каталог як проігнорований.
Див. Коміт fadb482 (25 жовтня 2017 р.) Йоганнеса Шінделіна ( dscho) .
(Об’єднано Junio C Hamano - gitster- у комітеті da7996a , 06 листопада 2017)
status: не плутайте підмодулі у виключених каталогах
Ми прискіпливо передаємо excludeпрапор treat_directory()функції, щоб ми могли вказати, що файли в ній виключаються, а не відслідковуються під час повторення.
Але ми ще не лікували субмодулі однаково.
Через git status --ignored --untrackedце підмодуль
submoduleу gitignored tracked/відображав би підмодуль у розділі " Untracked files", наприклад
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
Натомість ми хотіли б, щоб він показав підмодуль у розділі " Ignored files":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/