В Git, как мне извлечь из репозитория и получить все подмодульные наборы изменений, которые зафиксированы в дочернем репозитории подмодуля этого репозитория? - PullRequest
2 голосов
/ 25 июля 2011

Я пытаюсь использовать git submodules с такой топологией, как:

parent_repo
`-- child_repo 

Мы сохраняем копию ствола, которую мы все выталкиваем и извлекаем.(Я знаю, что топология звезд не нужна. Я понимаю, что вы можете вытягивать друг друга, не отражаясь через центральное хранилище.)

trunk_child_repo <--+
                    |
trunk_parent_repo   |
`-- child_repo -----+ # child_repo will pull from trunk_child_repo by default

Теперь у нас есть несколько копий trunk_parent_repo с полностью заполненными подмодулями.

trunk_parent_repo
`-- child_repo

ross_parent_repo
`-- child_repo

bob_parent_repo
`-- child_repo

joe_parent_repo
`-- child_repo

Я нахожусь в ross_parent_repo и хочу извлечь из bob_parent_repo и получить все правки, которые Боб сделал с файлами в bob_parent_repo , а также правкион предан своему подмодулю bob_parent_repo/child_repo.

К сожалению, когда я делаю git pull --recurse-submodules bob_parent_repo, он тянет от bob_parent_repo в ross_parent_repo, , но trunk_child_repo в ross_parent_repo/child_repo.

ЭтоМожно ли получить красивую, простую команду для извлечения всех наборов изменений, которые Боб сделал в bob_parent_repo, а также всех наборов изменений, которые он сделал во всех своих подмодулях?Придется ли мне его скриптовать и перебирать подмодули в файле .gitmodules?

1 Ответ

2 голосов
/ 25 июля 2011

Не нужно открывать .gitmodules; Вы можете использовать git submodule foreach.

git pull $BOBS_PARENT_REPO
git submodule foreach 'git pull $BOBS_PARENT_REPO/$path/.git'

(Это не будет работать для любых субмодулей субмодулей.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...