我们有4个带有可执行文件的repos,当我克隆其中任何一个时,我想将所有带有库的8个repos克隆到可执行文件夹旁边的文件夹中。可执行文件类似于服务,其中所有4个都将使用库的主存储库中的最新版本。当我克隆其中任何一个时,我也想要克隆所有8个库repos。
So I can for example clone executable1 and have folders: executable1-library1-..-library8 or clone library1 and have folders: library1-..-library8 or end up cloning all of the executables and have folders: executable1-..-executable4-library1-..-library8.
因此我不想每次都下载所有可执行文件,但我想每次都下载所有库。
我一直在考虑子模块,但是他们的文档很糟糕,也许整个功能很差,我不知道。然后我一直在考虑git中的子树和其他结构。还有可能我总是手动分别克隆所有8个库,这很可悲。
So what is the best way to 1) automatically download all of the 8 libraries to their folders (next to the folder of the executable if it was caused by cloning executable)? 2) automatically download all of the 8 libraries to their folders next to the folder of the executable during the cloning of the executable?
第一个选项更基本 - 让它分两步完成(1.executable + 2.libraries),第二个选项对我来说更好,只需要一步完成(可执行文件和库一起完成)。
我的部分问题在此解决:Git: Possible to use same submodule working copy by multiple projects?
即使它们与可执行文件一起下载并将这些更改推送到其存储库,我也希望对库进行更改。
编辑:我添加了最后一句,并补充说1库也应该下载其他库。答案 0 :(得分:1)
您仍然可以使用子模块和register them (in each repo) to follow their own master branch。
git submodule add -b master -- /url/library1
然后一个简单的git clone --recursive
就足以获得所有子模块内容
git submodule update --remote
将确保它们反映其最新的主分支状态。