Монорепозитории и подмодули Git
Узнайте о компромиссах между монорепозиториями и конфигурациями с несколькими репозиториями, а также о встраивании одного репозитория в другой с помощью подмодулей Git.
«Монорепозитории и подмодули Git» — бесплатный урок Git & GitHub Professional Workflow на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Git & GitHub Professional Workflow, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Git & GitHub Professional Workflow содержит 4 уроков всего.
Монорепозиторий и несколько репозиториев
Монорепозиторий хранит множество проектов в одном репозитории. При использовании нескольких репозиториев каждый проект находится в собственном репозитории. Оба подхода распространены в крупных проектах.
Почему команды выбирают монорепозитории
Монорепозитории упрощают:
- Общий доступ к коду между проектами
- Атомарный рефакторинг на разных границах
- Использование одного процесса непрерывной интеграции и одной схемы версий
Проблемы монорепозиториев
Крупные монорепозитории могут сильно разрастаться, замедляя клонирование и непрерывную интеграцию. Такие инструменты, как разреженная выгрузка и кэши сборки, помогают управлять этим.
Что такое подмодуль
Подмодуль — это отдельный репозиторий Git, встроенный в другой репозиторий на определённом коммите. Внешний репозиторий отслеживает, какой коммит внутреннего репозитория следует использовать.
Добавление подмодуля
Встройте внешний репозиторий по указанному пути с помощью git submodule add.
git submodule add https://github.com/org/shared-lib libs/sharedФайл .gitmodules
Git записывает путь и URL каждого подмодуля в отслеживаемый файл .gitmodules в корне репозитория.
[submodule 'libs/shared']
path = libs/shared
url = https://github.com/org/shared-libКлонирование с подмодулями
Обычное клонирование оставляет папки подмодулей пустыми. Используйте рекурсивный флаг, чтобы также получить их содержимое.
git clone --recurse-submodules https://github.com/org/appИнициализация существующих подмодулей
Если Вы уже выполнили клонирование, получите содержимое подмодулей с помощью инициализации и обновления.
git submodule update --init --recursiveОбновление подмодуля
Подмодули закреплены за определённым коммитом. Чтобы перейти к последней версии, обновите содержимое подмодуля и зафиксируйте новый указатель в родительском репозитории.
git submodule update --remote libs/shared
git add libs/shared
git commit -m 'Bump shared lib'Подмодули и поддерево
Поддерево Git — это альтернативный подход, при котором содержимое другого репозитория сливается напрямую. Это позволяет избежать сложности с закреплённым указателем, но лишает репозитории чёткого разделения.
Выбор подхода
Используйте монорепозиторий для тесно связанных проектов, подмодули — для встраивания общей библиотеки, которая независимо версионируется, а несколько репозиториев — когда команды полностью автономны.
Проверка понимания
Проверьте, насколько хорошо Вы поняли монорепозитории и подмодули.
Итоги
Вы узнали о монорепозиториях и подмодулях:
- Монорепозитории централизуют множество проектов, а несколько репозиториев разделяют их
- Подмодули встраивают репозиторий, закреплённый за коммитом, с помощью
.gitmodules - Клонируйте с помощью
--recurse-submodules - Поддерево — это альтернативная стратегия встраивания
Часто задаваемые вопросы
Урок «Монорепозитории и подмодули Git» бесплатный?
Да — полный текст урока «Монорепозитории и подмодули Git» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Git & GitHub Professional Workflow, подпишись на CoddyKit PRO. Курс Git & GitHub Professional Workflow содержит 4 уроков всего.
Чему я научусь в уроке «Монорепозитории и подмодули Git»?
Узнайте о компромиссах между монорепозиториями и конфигурациями с несколькими репозиториями, а также о встраивании одного репозитория в другой с помощью подмодулей Git. Ты практикуешь Git & GitHub Professional Workflow с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Git & GitHub Professional Workflow?
Предыдущий опыт не требуется. Git & GitHub Professional Workflow на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Монорепозитории и подмодули Git»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Git & GitHub Professional Workflow?
Да. Каждый урок Git & GitHub Professional Workflow включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Git в IDE и инструментах разработки
- Корпоративные решения Git
- Масштабирование Git для больших команд
- Монорепозитории и подмодули Git