我在 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
在此先感谢您的任何建议!