Git: как организовать два проекта, которые имеют общий код
Как два организуют два проекта, которые имеют общую часть кода?
У меня есть 2 проекта, которые имеют общую часть кода, которая время от времени меняется. Я использую TortoiseGit.
Например
project 1 - master
project 2 - dev-branch.
Как я понимаю, когда я делаю изменения в dev-branch (изменения в конкретном коде dev-branch и совместно с master-кодом), а затем объединяю master с dev-branch, master получит также конкретный код dev-branch.
Как мне разрешить эту ситуацию, чтобы получить для мастера только основные изменения?
3 ответа
Решение
- У вас должен быть дополнительный репозиторий для общего кода. Таким образом, в вашем случае у вас будет супер-проект1, супер-проект2 и новое хранилище подпроектов.
- Для любого из файлов, которые вы хотите использовать в общем проекте, вы должны собрать их в специальный специальный подкаталог (или дерево), чтобы ни один из файлов суперпроекта не содержался в каталогах общего кода.
- После строгого разделения вы можете использовать подмодули Git или git-subtree ( вариант использования поддерева, идентичный вашему)
Вы можете даже сделать git-репо внутри git-репо, но в итоге вы получите 2 истории. Я сам выбрал эту опцию, потому что я всегда изменяю свое внутреннее репозиторий git как блок, поскольку я хочу обновлять его модульные тесты всякий раз, когда я обновляю это репо.