Почему в Git подмодуля обновление не автоматическое включение ГИТ кассе?
при переключении ветвей с git checkout я бы предположил, что большую часть времени вы хотите обновить свои подмодули.
- В какой ситуации вы не хотите обновить подмодули после переключения?
- что сломалось бы, если бы это было сделано автоматически git checkout?
обновление с Пример:
- ветвь A имеет подмодуль S на 3852f1
- ветвь B имеет подмодуль S на fd72d7
на ветке A git checkout B приведет к рабочей копии ветви B с подмодулем S в 3852f1 (с измененным S). обновление подмодуля git будет оформить заказ на fd72d7.
2 ответа:
Я считаю, что подмодули, не обновляющиеся автоматически, соответствуют целям развития Git. Git предназначен для работы в распределенном режиме и не предполагает, что вы даже можете подключиться к нелокальному репозиторию, если вы явно не скажете об этом. Git не автоматическое обновление подмодуля будет ожидаемым поведением, когда вы думаете об этом.
с учетом сказанного, если вы знаете, что вы всегда хотите, чтобы эти суб-модули были втянуты, и вы знаете, что вы бы никогда не отходите от этих подмодулей в другой локальный репозиторий, тогда он не должен ничего ломать, если вы автоматически обновили их после проверки.
git checkout --recurse-submodules
will был добавлен в git 2.13Это упоминается в примечаниях к выпуску по адресу: https://github.com/git/git/commit/e1104a5ee539408b81566066aaa6963cb87d5cd6#diff-c24776ff22455a30fbb78e378b7df0b0R139
submodule.recurse
опция была добавлена в git 2.14как:
git config --global submodule.recurse true
man git-config
говорит:указывает, если команды рекурсии в подмодулях по умолчанию. Это относится к все команды, которые имеют . По умолчанию false.