Используйте либо поддеревья git, либо подмодули git.
В прошлый раз, когда я проверял, у подмодулей были некоторые серьезные проблемы (но я слышал, что они были немного улучшены в последних версиях).Подробности см. Здесь: Рабочий процесс подмодулей Git
Вкратце:
Поддеревья являются обычными ветвями Git , объединенными со специальнымистратегия слияния, которая помещает все свои файлы в подкаталог рабочей копии репозитория хоста.Помимо стратегии слияния (которая имеет значение только при создании коммита слияния), Git "поддерево" является совершенно нормальной веткой Git.
Плюсы:
- Никакой дополнительной поддержки инструментов не требуется,за исключением случаев, когда вам нужно извлечь новые изменения из поддерева, и даже тогда вся поддержка - это опция
-s subtree
командной строки (полный рабочий процесс см. здесь ).Вы должны помнить о поддереве, только когда вы выполняете извлечение поддерева.
Минусы:
- Все коммиты поддерева видны в истории основного проекта.
- Не вносить изменения в каталог репозитория хоста, в котором поддерево живет, или сталкиваться с конфликтами при следующем извлечении поддерева.
Подмодули являются Git хранилища внутри репозитория хоста.
Плюсы:
- Более чистая история, лучшее отделение от репозитория хоста.
- Можно напрямую связываться с субмодулем от репозитория субмодуля.напрямую (или я так думаю).
Минусы:
- Для каждой (или многих) команды Git вы помните, что имеете дело с репозиторием с подмодулями, лотаминеприятных угловых дел (или так было, когда я смотрел).Требуется поддержка специального инструмента для работы с каждым клоном репозитория.
Отказ от ответственности: я склонен к подмодулям.Попробуйте сами убедиться, какой подход лучше подходит для вашего рабочего процесса.