2015-12-22 4 views
4

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

Я сделал то же git clone --recursive [email protected]:passion/academy.git

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

Нужно ли делать лишние вещи, такие как git submodule update --init --recursive? Если да, то каково использование флага --recursive при клонировании основного репозитория?

+2

Если вы используете Git 1.6.5 или новее, ваш 'git clone --recursive' должен делать то, что вы ожидаете. Вы используете раньше этой версии? Это довольно старая версия, но стоило спросить: D – chrixian

ответ

3

Если вы используете достаточно недавнее ублюдка, и он еще не клонировать подмодулях, что означает, что эти пустые папки не подмодулями но nested git repo.

Вложенный репо записывается в родительском репо как gitlink, но там не будет никаких .gitmodules файлов, связанных с ним.

health-check кажется вложенным мерзавцем, но не уверен, что при клонировании дать мне No submodule mapping found in .gitmodules for path for health-check .. это необходимо для вложенных Git репо, чтобы иметь запись в .gitmodules?

Если вы хотите, чтобы ваш вложенный git-репо был распознан и управлялся как подмодуль, да.

Как показано на your next question, вполне возможно, что отсутствие записи пути в .gitmodules для health-check предотвращает hellospawn (который, как представляется законным подмодуль), чтобы быть проверены.

+0

Я обнаружил, что у меня есть два подкаталога, один из которых - это «hellospawn», который наверняка является подмодулем (запись в .gitmodules) и другая папка «проверка работоспособности» (no запись в .gitmodules). Я подозреваю, что «проверка работоспособности» представляет собой вложенное репо вместо «подмодуля». Предположим, если это так, то не будет --recursive flag вытащить код «hellspawn»? Я надеюсь, что смогу объяснить все. – voila

+0

@voila yes, '--recursive' должен клонировать' hellospawn' (просто чтобы убедиться, какая версия git вы используете, на какой ОС?) – VonC

+0

@voila также, что такое вывод 'git ls-tree HEAD hellospawn' – VonC

Смежные вопросы