Сделайте git pull —recurse-submodules обновите подмодуль до последней фиксации в ветке подмодуля

#git #git-submodules

#мерзавец #git-submodules

Вопрос:

Я хочу git pull --recurse-submodules обновить все подмодули до последней фиксации в их ветке.

.gitmodules :

 [submodule "roles-shared"]
    path = roles-shared
    url = ../../project/roles-shared.git
    branch=master

 

Я обновляю master ветку в репозитории с общим доступом к ролям, добавляя 1 новую фиксацию.

Я делаю git pull --recurse-submodules в главном репозитории:

 Fetching submodule roles-shared
From gitlab:project/roles-shared
   83de1f4..f0688dd  master     -> origin/master
Already up to date.

 

Подмодуль получил все новые коммиты, но он не обновляется, он на 1 коммит отстает от master:

 # submodule foreach git status

Entering 'roles-shared'
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
 

Есть ли какой-нибудь способ git pull автоматически обновлять подмодули до их последних коммитов?

Ответ №1:

git pull amp;amp; git submodule foreach git pull origin master

Комментарии:

1. Это должно сработать. Я надеялся на какую-нибудь опцию в конфигурации git или переключатель командной строки для git pull, чтобы рабочий процесс немного не изменился из-за наличия подмодулей.