Почему submodule переключается на HEAD после update?

Мой гит репо использует submodule и когда я стягиваю изменения в своем основном репо я так же в терминале делаю эту команду

git submodule update --recursive

и когда я открываю свой submodule я вижу, что вместо того, чтоб быть на dev ветке он почему то переключается на HEAD которая имеет поинтер на пару недель назад, то есть не обновленная и я как бы руками опять ее переключаю на dev (и HEAD при этом исчезает)

В общем я не совсем пойму, я ожидаю, что при вызове команды update --recursive все сабмодули должны подтянуть последние изменения веток на которых они стоят, то есть если в сабмодуле активная ветка сейчас dev то он должен подтянуть все последние изменения с дев, а не создавать HEAD которые еще и не обновленный...

что делаю не так?


Ответы (1 шт):

Автор решения: gbg

что делаю не так?

Вот это:

я ожидаю, что при вызове команды update --recursive все сабмодули должны подтянуть последние изменения веток на которых они стоят

К сожалению, это так не работает - update затянет те коммиты, хэши которых сохранены в корневом репозитории.

К счастью, есть дополнительные ключи, которые заставят git делать то, что вы хотите:

git submodule update --remote --merge
→ Ссылка