команда git submodule
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/libfoo5. Список подмодулей
git submodule
Вывести список всех подмодулей в текущем репозитории вместе с их хешами коммитов и путями.
Типичное использование:Просмотреть состояние всех подмодулей в проекте.
git submodule
6. Обновить все подмодули
git submodule update --recursive --remote
--recursive: Рекурсивно обновить все подмодули (включая подмодули подмодулей).--remote: Извлеките последние изменения из удалённого репозитория подмодуля.
Обычное использование:Когда подмодули содержат другие подмодули, убедитесь, что все уровни подмодулей обновлены до последней версии.
git submodule update --recursive --remote
7. Проверка статуса подмодуля
git submodule status
Отображает текущий статус подмодулей, включая текущий хеш коммита и путь, а также наличие незакоммиченных изменений.
Обычное использование:Просмотр текущего статуса подмодулей.
git submodule status
Другие расширения