3

Я управляю репозиторием с несколькими подмодулями. Некоторое время сейчас я использую

$ git submodule foreach git pull origin master

чтобы внести последние изменения для всех этих парней. Однако недавно я узнал о

$ git pull --recurse-submodules

и дал ему попытку, но кажется, что изменения только извлекаются, так что вам нужно

$ git submodule update --recursive

для того, чтобы на самом деле оформить изменения. Тем не менее, этот последний, похоже, ничего не делает в моем хранилище, несмотря на то, что подмодули явно тянут изменения Я также заметил, что мои подмодули извлекаются для некоторого коммита вместо master или любой другой ветки.

  1. Я делаю что-то неправильно?
  2. Или это артефакт метода foreach , который я обычно делал?
  3. Как я могу исправить ситуацию так, чтобы pull --recurse-submodules и submodule update --recursive работать как положено?

1 ответ1

1

git submodule update --recursive обновляет подмодули в соответствии с коммитом в родительском репо. Поэтому вам нужно внести изменения в родительский репозиторий, чтобы эта команда могла что-либо сделать.

С этой настройкой:

/proj/.git
/proj/module/.git

Вы вносите изменения в "модуль", фиксируете и нажимаете их. В "proj" вы фиксируете модуль (он просто показывает изменение хеша подмодуля).

Теперь, когда вы извлекаете и обновляете субмодуль, он обновляет "модуль" для использования нового коммита.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .