Возможно ли создание подмодуля git из нескольких других подмодулей git и супер-репозитория git для извлечения содержимого для каждого подмодуля?
Я попытался сделать это, используя очевидный / наивный подход создания git-репо, содержащего несколько подмодулей.
Затем добавьте это git-репо в другое git-репо в качестве подмодуля.
Затем пытается вытянуть из корневого каталога супер мерзавца репо по , git submodule init
а затем git submodule update
. Но это не в состоянии получить субмодули.
git
git-submodules
firstresponder
источник
источник
Ответы:
Как уже упоминалось в ретроспективе, добавьте --recursive к git-репо
должно сработать.
источник
git submodule init; git submodule update --recursive
было синонимом вышесказанного, но это не так.--init
флаг, подмодули внутри одного из моих подмодулей просто инициализируются старыми версиями, а не самыми последними.git submodule foreach git pull origin master
, и это работает частично: подмодули обновляются, но иногда ониHEAD
отсоединяются, и для подмодулей внутри подмодулей я не могу зафиксировать изменения моего прямого подмодуля, потому что он имеет «измененный контент», а не «новые коммиты» (поскольку его собственные подмодули имеют "новые коммиты" и обновляются).Как Шридхар комментарии ниже, от Git1.6.5 +,
git clone --recursive
теперь официальной альтернативы, описанная в:git clone --submodule
"--recursive
в git-репо »(с тем
alias $ git config --global alias.cloner = 'clone --recursive'
, что позволяет избежать дублирования обычнойgit clone
команды)inamiy правильно указывает на
git submodule update --init --recursive
команду, введенную в commit b13fd5c , снова в git1.6.5, Йоханом Херландом (jherland
) .И IceFire добавляет в комментариях :
(старый оригинальный ответ)
Согласно странице руководства
следует обновить любые вложенные подмодули. Но инициальная часть не может быть рекурсивной.
В зависимости от вашей версии Git, вы можете прибегнуть к более «скриптовому» подходу с этой статьей Рекурсивное обновление подмодулей Git, которая допускает рекурсивные инициацию и обновление:
источник
git clone --recursive
достаточно?git submodule update --init <submoduleName>
есть путь; Я попал сюда при поиске этого ответа