在Git中管理一组相关的存储库

时间:2012-04-23 08:37:04

标签: git git-submodules

我有一组我想管理的相关存储库。

我想要存储的数据是由“库”组成的“项目”,“库”由“单位”组成。 每个库都存储在项目的子文件夹中,每个单元都存储在库的子文件夹中。

为了能够在多个项目之间重用库和单元,我计划根据这个方案存储它们:

repositories/projects/project1
repositories/projects/project2>
repositories/projects/project...
repositories/libraries/library1
repositories/libraries/library2
repositories/libraries/library...
repositories/units/unit1
repositories/units/unit2
repositories/units/unit...

我想相对地引用项目中使用的库(比如使用../../libraries/library1)并且相对地引用库中的单元。

只能通过修改包含它们的项目来修改库和单元。因此,如果有必要,库和单元存储库可能是裸露的。

服务器上的存储库看起来应该相同(文件夹的布局相同)。

我已经尝试过使用子模块和“读取树/子树合并”方法,但是找不到在子模块中指定存储库的相对URL以及推送读取树方法中的更改的方法。 / p>

我想要完成的是,如果我查看project1,它还会获取所有必需的库和单元,如果我通过项目更改库或单元,这些更改可以很容易地再次推送到服务器。

1 个答案:

答案 0 :(得分:2)

子模块是您的选择,并允许相对URL。

子模块可以指定相对于超级项目的origin URL的另一个子模块URL。因此,在project1中,请使用以下

git submodule add ../library1
git submodule --init update

它应该没问题:library1将在project1的目录中签出,其原始仓库在project1旁边。

相关问题