git submodule позволяет включить один репозиторий Git как подкаталог внутри другого репозитория.  По сути, это способ управления зависимостями, когда нужно использовать конкретную версию другого проекта в вашем проекте.  Он хранит ссылку на конкретный коммит в другом репозитории, а не его содержимое.  Обновление и синхронизация подмодулей требует отдельных команд.
    git submodule позволяет включать один Git-репозиторий как поддиректорию в другом Git-репозитории.  Представьте, что у вас есть основной проект (например, веб-приложение), и он использует внешнюю библиотеку или компонент, который сам по себе является отдельным проектом с собственной историей версий. Вместо того, чтобы копировать код этой библиотеки прямо в ваш основной проект, вы можете использовать git submodule, чтобы:
  
git submodule update --init --recursive автоматически загрузит и настроит подмодули, обеспечивая полный код проекта.
    Проще говоря: git submodule - это способ включить один Git-репозиторий внутрь другого, при этом сохраняя независимость и историю версий включенного репозитория.  Это как вставить ссылку на файл, вместо копирования его содержимого.
  
Важные моменты:
git submodule  сохраняет только ссылку на определенный коммит подмодуля, а не сам код в основном репозитории.git submodule init и git submodule update).Пример: Допустим, у вас есть репозиторий my-website.  Вы хотите использовать библиотеку some-library в своем проекте. Вы добавляете её как подмодуль с помощью команды: git submodule add https://github.com/example/some-library.git path/to/some-library.