команда git submodule

Основные операции Git


git submoduleКоманда используется для управления проектами, которые содержат другие репозитории Git.

git submoduleКоманда очень полезна для крупных проектов или ситуаций, когда нужно интегрировать внешние библиотеки в свой проект. Используя подмодули, вы можете управлять внешними библиотеками как частью проекта, не объединяя их с основным репозиторием.

Подробное использование

1. Инициализация подмодулей

git submodule init

Эта команда инициализирует все подмодули в файле конфигурации. Она задаёт URL-адреса и пути подмодулей на основе информации в файле .gitmodules, но не загружает содержимое подмодулей.

Обычное использование:После клонирования репозитория, содержащего подмодули, выполните эту команду, чтобы инициализировать подмодули.

git clone <repo-url>
cd <repo-dir>
git submodule init

2. Обновление подмодуля

git submodule update

Эта команда извлекает содержимое подмодуля из удалённого репозитория подмодуля и обновляет его до коммита, указанного в файле .gitmodules.

Обычное использование:Выполните эту команду после инициализации подмодулей или когда нужно обновить содержимое подмодуля.

git submodule update

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

git submodule add <repo-url> [<path>]

Эта команда добавляет указанный репозиторий Git в текущий проект как подмодуль.

<repo-url>является адресом репозитория подмодуля,<path>Путь подмодуля в главном репозитории (необязательно; если не указан, по умолчанию в качестве пути используется имя репозитория подмодуля).

Типичное использование:Добавить внешнюю библиотеку в проект как подмодуль.

git submodule add https://github.com/example/libfoo.git libfoo

4. Удалить подмодуль

git submodule deinit [<path>]
git rm [<path>]
  • git submodule deinit <path>: Удалить подмодуль из.git/configудалить его из файла и удалить файлы в каталоге подмодуля.
  • git rm <path>: Удалить ссылку на подмодуль из главного репозитория и закоммитить изменения.

Типичное использование:Удалить подмодуль из главного репозитория.

git submodule deinit libfoo
git rm libfoo
rm -rf .git/modules/libfoo
5. Список подмодулей
git submodule

Вывести список всех подмодулей в текущем репозитории вместе с их хешами коммитов и путями.

Типичное использование:Просмотреть состояние всех подмодулей в проекте.

git submodule

6. Обновить все подмодули

git submodule update --recursive --remote
  • --recursive: Рекурсивно обновить все подмодули (включая подмодули подмодулей).
  • --remote: Извлеките последние изменения из удалённого репозитория подмодуля.

Обычное использование:Когда подмодули содержат другие подмодули, убедитесь, что все уровни подмодулей обновлены до последней версии.

git submodule update --recursive --remote

7. Проверка статуса подмодуля

git submodule status

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

Обычное использование:Просмотр текущего статуса подмодулей.

git submodule status

Основные операции Git

Другие расширения