Объединить изменения подмодуля после git pull в родительском репозитории - PullRequest
0 голосов
/ 02 февраля 2019

Как получить и объединить основной репозиторий и сделать то же самое для всех подмодулей, используя команду single ?

У меня есть репозиторий A , который включает в себяподмодуль B .Подмодуль B часто обновляется, и изменения не всегда актуальны.

Я могу обновлять и объединять новые изменения, выполнив

cd A/B    <-- enter submodule directory
git pull  <-- run pull to fetch and !!merge!! submodule changes

Что я хочу сделатьэто запустить одну команду, чтобы вытащить и объединить основной репозиторий и сделать то же самое со всеми подмодулями.

cd A                           <-- Now enter to parent directory
git pull --recurse-submodules  <-- Fetch&merge changes on main repository
                               <-- and pull changes on all submodules 

Что на самом деле происходит:

  1. Изменения в репозитории A выбираются и объединяются => OK
  2. Изменения в хранилище субмодулей B только выбираются и не объединяются => NOK

Текущее решение:

cd A
git pull --recurse-submodules
cd B
git merge   <-- Now merge fetched changes from submodule remote

или:

cd A
git pull --recurse-submodules
git submodule foreach git merge origin master

Другие вопросы, которые я проверил, не повезло:

Простой способ получить последниевсех подмодулей git

Запустить git pull для всех подкаталогов

Запуск git --help pull в версии git 2.20.1 Я вижу это сообщение:

ОШИБКИ С помощью --recurse-submodules можно только получать новые коммиты в уже извлеченных подмодулях.Когда, например, восходящий поток добавил новый подмодуль в только что извлеченные коммиты суперпроекта, сам подмодуль не может быть выбран, что делает невозможным проверку этого подмодуля позже без необходимости повторной выборки.Ожидается, что это будет исправлено в будущей версии Git.

Это связано с проблемой?

...