n1ro°
RU

Компьютеры · Инструкция

Git submodule пустой после clone: init/update recursive

Проверьте URL и пути модулей в `.gitmodules`. Выполните `git submodule status --recursive`, чтобы увидеть состояние всех

Редакция N1RO · Проверено

Короткий ответ

После clone выполните `git submodule sync --recursive`, затем `git submodule update --init --recursive`, чтобы загрузить отсутствующие submodule и вложенные модули на зафиксированных родителем commit.

Проверка по порядку

  • Проверьте URL и пути модулей в `.gitmodules`.
  • Выполните `git submodule status --recursive`, чтобы увидеть состояние всех уровней.
  • Синхронизируйте URL командой `git submodule sync --recursive`.

Исправление

  1. Запустите `git submodule update --init --recursive`.
  2. Если один URL не загружается, проверьте доступ к конкретному репозиторию и его SSH/HTTPS-аутентификацию.
  3. Повторите `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.