Ні, вам не потрібно додавати свій підмодуль до вашого .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/