G
GitHub Ready | Git
@git_ready6.3K подп.
549просмотров
8.7%от подписчиков
23 марта 2026 г.
questionScore: 604
🔗 Git Submodules: как встроить один репозиторий в другой? Представь, что у тебя есть три разных проекта, и в каждом из них используется одна и та же библиотека UI-компонентов или модуль авторизации. Копировать код вручную — плохая идея (придется обновлять его в трех местах). Для таких случаев в Git есть механизм подмодулей (Submodules). Задача: — Использовать чужой или свой сторонний репозиторий внутри текущего проекта. — Сохранить возможность обновлять этот внешний код независимо от основного проекта. Решение: Мы не просто скачиваем файлы, а сохраняем ссылку на конкретный коммит внешнего репозитория. # 1. Добавить внешний репозиторий как подмодуль (в папку libs/my-shared-library) git submodule add https://github.com/user/lib.git libs/my-shared-library # 2. Когда твои коллеги склонируют проект, им нужно будет инициализировать подмодули: git submodule update --init --recursive # 3. Чтобы обновить подмодуль до самой свежей версии из его ветки: git submodule update --remote libs/my-shared-library Почему это удобно? — Единый источник правды: ты правишь библиотеку в одном месте, а обновляется она везде. — Разделение прав: бэкендеры могут работать в своем репозитории, фронтендеры — в своем, но у них может быть общая папка с типами или конфигами. — Версионирование: основной проект не сломается, если в библиотеке выйдет баг. Он обновится только тогда, когда ты сам этого захочешь (сдвинешь указатель коммита). Совет: Будь аккуратен при удалении подмодулей. Это не просто rm -rf, тебе придется удалить упоминания о нем из файлов .gitmodules и .git/config. Если проект разрастается, многие команды со временем переходят на монорепозитории (Monorepos) с использованием инструментов вроде Turborepo или Nx. 🔥 — если делишь код на независимые модули 🤝 — если просто копипастишь папки из проекта в проект ➡️ GitHub Ready | #урок
549
просмотров
1852
символов
Да
эмодзи
Нет
медиа

Другие посты @git_ready

Все посты канала →
🔗 Git Submodules: как встроить один репозиторий в другой? П — @git_ready | PostSniper