Как "git clone", включая подмодули? - PullRequest
1760 голосов
/ 26 сентября 2010

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

Есть ли способ сделать так, чтобы git clone parent_repo фактически помещал данные в папку субмодуля?Например, http://github.com/cwolves/sequelize/tree/master/lib/, nodejs-mysql-native указывает на внешний подмодуль git, но когда я извлекаю проект sequelize, эта папка пуста.

Ответы [ 13 ]

10 голосов
/ 06 апреля 2016

Параллельная выборка субмодулей направлена ​​на сокращение времени, необходимого для выборки репозиториев и всех связанных с ним субмодулей, путем одновременной загрузки нескольких репозиториев.Это можно сделать с помощью новой опции --jobs, например:

git fetch --recurse-submodules --jobs=4

По мнению команды Git, это может существенно ускорить обновление репозиториев, которые содержат много подмодулей.При использовании --recurse-submodules без новой опции --jobs Git будет извлекать подмодули по одному.

Источник: http://www.infoq.com/news/2016/03/git28-released

4 голосов
/ 18 июня 2018

Попробуйте это.

git clone -b <branch_name> --recursive <remote> <directory>

Если вы добавили субмодуль в ветку, убедитесь, что вы добавили его в команду клонирования.

1 голос
/ 01 июля 2019

[Быстрый ответ]

После клонирования родительского репо (в котором содержалось некоторое количество субмодульного репо) выполните следующие действия:

git submodule update --init --recursive
...