Клонирование репо git со всеми подмодулями

У меня есть рабочий репозиторий git, содержащий несколько подмодулей (полученных клонированием разных репозиториев).

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

Возможно ли это? В моих попытках в клонированном репозитории каталог подмодулей пуст.

P.S. Я знаю, что это не правильный рабочий процесс (см. создание публичного репо с подмодулями), однако нет возможности обновить оригинальный подмодуль.

Ответ 1

Вы можете клонировать репозиторий git со всеми субмодулями, используя recursive, как показано ниже:

git clone --recursive your-repo-url

с другой стороны, если вы уже клонировали, вы можете использовать:

git submodule init
git submodule update

Вы не потеряете историю в своем подмодуле

Ответ 2

в клонированном репозитории каталог подмодулей пуст.

Если "клонированным репо" вы ссылаетесь на голый репо, это нормально: голое репо всегда пусто.

Если вы ссылаетесь на клон открытого репо, вам нужно добавить:

git submodule update --init --recursive

Таким образом, вы увидите содержимое этих подмодулей.


Помните, что подмодуль:

Итак, все, что вам нужно сделать, это клонировать это репо (даже с опцией --recursive), и подмодули будут следовать.