Компьютеры · Инструкция
Git submodule пустой после clone: init/update recursive
Проверьте URL и пути модулей в `.gitmodules`. Выполните `git submodule status --recursive`, чтобы увидеть состояние всех
Короткий ответ
После clone выполните `git submodule sync --recursive`, затем `git submodule update --init --recursive`, чтобы загрузить отсутствующие submodule и вложенные модули на зафиксированных родителем commit.
Проверка по порядку
- Проверьте URL и пути модулей в `.gitmodules`.
- Выполните `git submodule status --recursive`, чтобы увидеть состояние всех уровней.
- Синхронизируйте URL командой `git submodule sync --recursive`.
Исправление
- Запустите `git submodule update --init --recursive`.
- Если один URL не загружается, проверьте доступ к конкретному репозиторию и его SSH/HTTPS-аутентификацию.
- Повторите `git submodule status --recursive` и убедитесь, что каждый модуль указывает на ожидаемый SHA.
Как понять, что исправлено
- git submodule status --recursive выводит ожидаемые SHA без неинициализированных модулей, а рабочие каталоги заполнены.
Важно
Не используйте --force для submodule как первый шаг: сначала проверьте .gitmodules, URL и доступ, чтобы не затереть локальные изменения в модуле.
Что учитывать
Не используйте --force для submodule как первый шаг: сначала проверьте .gitmodules, URL и доступ, чтобы не затереть локальные изменения в модуле.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. git-submodule Documentation). Пример и формулировки — редакция N1RO на 2026-09-17.