Подмодули

Подмодули

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

Пример подмодулей в профиле репозитория:

Макет страницы репозитория с подмодулями

Клонирование проекта с подмодулями

Рекурсивная загрузка подмодулей при клонировании

git clone URL_репозитория --recourse-submodules

Ручная инициализация и обновление

  1. Клонируйте репозиторий:

    git clone URL_репозитория
  2. Перейдите в каталог репозитория и инициализируйте подмодули, указанные в .gitmodules:

    git submodule init
  3. Обновите подмодули до версии, указанной в родительском репозитории, сохраненной в файле .gitmodules или в метаданных родительского репозитория:

    git submodule update

Добавление подмодуля

Для добавления подмодуля в репозиторий выполните команду git submodule add URL_репозитория, например:

git submodule add https://gitverse.ru/gitverse_tutorials/repository2_submodule.git

Далее сохраните и отправьте изменения:

git add .
git commit -m "a new submodule added"
git push

При первом добавлении подмодуля в вашем репозитории появляется файл .gitmodules для отслеживания и управления подмодулями. В нем хранится URL репозитория подмодуля, путь к нему в вашем репозитории и другие данные.

Пример:

Макет страницы репозитория с подмодулями

Изменение ветки подмодуля

Для изменения ветки подмодуля перейдите в его директорию и выполните команду смены ветки, например:

cd repository2_submodule
$ git checkout feature_branch

Рекурсивное обновление подмодулей

Данная команда обновляет все подмодули до последних версий, инициализирует подмодули, если они еще не были инициализированы, и рекурсивно обновляет все вложенные подмодули:

git submodule update --remote --init --recursive