Порожня папка підмодулю Git, коли репо клоновано


130

У мене розміщено одне репо на https://github.com/aikiframework/json . На своїй локальній копії я додав підмодуль за допомогою команди

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

Тоді я здійснив фіксацію і натисніть, і зміни з’являються на GitHub (я можу натиснути на нього). Але коли я клоную репо

git clone https://github.com/aikiframework/json.git

папка підмодуля json-rpc порожня.

Що я тут пропускаю? Я щось забув? Чому ця папка порожня?

Відповіді:


200

Добре, я знайшов це, потрібно додати --recursive під час клонування репо.

Отже команда клонування закінчується так:

git clone https://github.com/aikiframework/json.git --recursive

229
Так. Ви також можете отримати субмодулі після факту git submodule update --init, якщо ви вже клонувались, але забули --recursive.
Янтар

4
Щойно зіткнувся з проблемою, що є підмодуль на розгалуженні, але ще не на головній гілці. Коли ви клонуєте git repo за допомогою --recursive, він не знайде підмодуль у головній гілці, і вам доведеться отримати його за допомогою коментаря Амберса "оновлення підмодуля git --init", щоб отримати також субмодуль.
d4Rk

11
Якщо ви використовуєте , git submodule update --initвам доведеться йти до кожного репо і зробити в git checkout masterіншому випадку ви отримаєте повідомлення про помилку You are not currently on a branch.на git pullпри спробі оновити його до більш нової версії.
Noitidart

@Noitidart є спосіб, який цього не робить? (після клонування проекту вже)
борг

1
@Noitidart Дякую за update --initпідказку. Це допомагає, коли оригінальний клон не мав --recursiveу ньому і просто хотів витягнути відсутні підмодулі.
Ярі Туркія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.