Начиная с Git 1.7.5, он должен автоматически обновлять подмодули по умолчанию, как вы этого хотите.
[РЕДАКТИРОВАТЬ: по комментариям: новое поведение 1.7.5 - автоматически извлекать последние коммиты для подмодулей, но не до обновлять их (в git submodule update
смысл). Таким образом, информация в этом ответе актуальна как справочная информация, но сама по себе она не является полным ответом. Вам все еще нужен псевдоним для извлечения и обновления подмодулей в одной команде.]
Поведение по умолчанию «по требованию» - обновлять субмодули всякий раз, когда вы выбираете коммит, который обновляет коммит субмодуля, и этот коммит еще не находится в вашем локальном клоне.
Вы также можете обновлять его при каждой загрузке или никогда (поведение до версии 1.7.5, я полагаю).
Параметр конфигурации для изменения этого поведения: fetch.recurseSubmodules
.
Для этой опции можно установить логическое значение или on-demand
.
Установка его в логическое значение изменяет поведение fetch
и pull
, чтобы безоговорочно переходить в подмодули, если установлено значение true, или вообще не рекурсивно, если установлено значение false.
Если установлено значение on-demand
(значение по умолчанию), fetch
и pull
будут возвращаться в заполненный субмодуль только тогда, когда его суперпроект получает фиксацию, которая обновляет ссылку подмодуля .
См:
для получения дополнительной информации.
git fetch --recurse-submodules[=yes|on-demand|no]