У меня есть проект в Git, который имеет несколько подмодулей, и мне нужны эти подмодули, которые нужно загрузить, и файлы, доступные для использования основного проекта, и для того, чтобы подмодули работали, мне нужны их собственные подмодули быть доступным и т.д. Поэтому, чтобы установить это, я рекурсивно инициализирую подмодули, используя git submodule update --init --recursive
.
Однако, я заметил, что многие из моих подмодулей имеют общие зависимости, выглядя что-то вроде этого в псевдокоде (alpha -> beta
означает, что alpha
имеет подмодуль beta
)
my project -> submodule a -> submodule m
-> submodule b -> submodule m
-> submodule n -> submodule x
-> submodule c -> submodule x
Мой вопрос: есть ли способ избежать этого дублирования, используя только git, сохраняя (по крайней мере, одну копию) файлы для каждого подмодуля?
Я могу представить решение с символическими ссылками, но было бы предпочтительнее, если бы Git обработал это для меня, и я не уверен, что сама ли установка символических ссылок вызовет проблемы при обновлении подмодулей.
В идеале я хотел бы упростить его:
my project -> submodule a -> symlink(submodule m)
-> submodule b -> symlink(submodule m)
-> symlink(submodule n)
-> submodule c -> symlink(submodule x)
-> submodule m
-> submodule n -> symlink(submodule x)
-> submodule x
Заранее благодарим за любые предложения!