Вы игнорируете подмодуль git в своем.gitignore или передать его в свое РЕПО?
я добавил подмодуль к моему проекту в project_dir/vendor/submodule_one теперь каждый раз, когда я запустить git status Я modified: vendor/submodule_one (new commits).
мой вопрос, что лучший способ справиться с этим? Я добавляю vendor/submodule_one-папку в мои .gitignore как мой основной проект не должен знать о специфике моего подмодуля?
или когда я изменяю и фиксирую изменения в своем подмодуле, мне также нужно сделать коммиты в моем основном проекте?
только начало работы с подмодулями и не может показаться чтобы найти много информации, помимо их настройки.
1 ответ:
нет, вам не нужно добавлять свой подмодуль к вашему
.gitignore: то, что родитель увидит из вашего подмодуля-это gitlink (a специальная запись,mode 160000).это означает: любое изменение, непосредственно внесенное в подмодуль, должно сопровождаться фиксацией в Родительском каталоге.
Таким образом, родительский каталог будет записывать правильную фиксацию для состояния подмодуля: эта фиксация является" gitlink", упомянутым выше;вы можете подробнее об этой политике читайте в разделе "обновление подмодулей git (истинная природа подмодулей)".
Основная идея подмодулей-это компонентный подход, где вы ссылаетесь на другие РЕПО на коммиты. Но если вы что-то измените в этих подмодулях, вам также нужно обновить эти ссылки в Родительском РЕПО.
обратите внимание, что с Git 2.13 (Q2 2017), в то время как не игнорируя gitlink, вы все равно можете игнорировать подмодуль с:
git config submodule.<name>.active falseна "игнорировать новые коммиты для подмодуля git".
Примечание: с Git 2.15.х/2.16 (1 кв. 2018), не обращая внимания подмодуль является более точным.
"git status --ignored --untracked" не останавливался на рабочем дереве отдельного проекта, который встроен в игнорируемый каталог и перечисленные файлы в этом другом проекте, вместо того, чтобы просто показывать сам каталог как игнорируемый.посмотреть commit fadb482 (25 октября 2017) by Иоганнес Schindelin (
dscho).
(слитый Junio C Hamano--gitster-- на commit da7996a, 06 ноя 2017)
status: не путайте подмодули в исключенных каталогахмы тщательно передают
excludeфлагtreat_directory()функция, чтобы мы могли указать, что файлы в нем исключаются, а не не отслеживаются при рекурсии.но мы еще не рассматривали подмодули таким же образом.
из-за этого,
git status --ignored --untrackedС подмодуляsubmoduleв gitignoredtracked/покажет подмодуль в "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/
Comments