Продвинутый Git
Amanda Crawford-Adamo
Software and Data Engineer
Git Submodule
git submodule

Добавление субмодуля по ссылке или пути к директории.
git submodule add <repository link|dir> <path>
$$
Пример
Добавляет библиотеку валидации данных в ETL-проект в папку libs/validator репозитория ETL.
git submodule add https://github.com/example/data-validator.git libs/validator
Список всех субмодулей проекта
git submodule status
Пример
$ git submodule status
e1f2...7w8x9 data_cleaning_lib
a1b2...q7r8 api_connector
d9e8...t3u2 visualization_toolkit
Обновление субмодуля до последних изменений
Доступно несколько вариантов:
git submodule update --init
git submodule update --init --remote
git submodule update --init <path_to_submodule>
Процесс удаления субмодуля
git submodule deinit <submodule_name>
git rm <path>
Скопируйте все нужные файлы в новую папку за пределами репозитория.
В новой папке создайте репозиторий для субмодуля:
git init <new-submodule>
Используйте filter-repo, чтобы извлечь нужные файлы и историю из основного проекта:
git filter-repo --path <extract_path> --invert-paths
Добавьте извлечённый репозиторий как субмодуль в основной проект:
git submodule add <new-submodule_path> <path_to_store_submodule>
Сценарии использования:
Рекомендации:
Продвинутый Git