Клонирование репо 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
), и подмодули будут следовать.