Нет, вам не нужно добавлять ваш подмодуль к вашему .gitignore
: родитель увидит из вашего подмодуля gitlink (специальная запись , mode 160000
).
Это означает, что за любым изменением, непосредственно сделанным в подмодуле, должна следовать фиксация в родительском каталоге.
Таким образом, родительский каталог будет записывать правильную фиксацию для состояния подмодуля: эта фиксация является упомянутой выше «gitlink»;
Подробнее об этой политике вы можете прочитать в " git submodule update (истинная природа подмодулей) ".
Основная идея подмодулей - это компонентный подход , где вы ссылаетесь на другие репо при определенных коммитах. Но если вы что-то измените в этих подмодулях, вам также необходимо обновить эти ссылки в родительском репо.
Обратите внимание, что в 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
- in commit da7996a , 06 Nov 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/