git子模块作为构建的一部分

时间:2011-10-17 16:58:46

标签: git build git-submodules

我正在尝试设置一个带有子模块存储库的git存储库。让我们打电话给2个回购:Super&这个例子的子。所以我初始化了超级回购,然后做了第二次回购的git submodule add。我使用Super repo提交了.gitmodules文件,这样当你执行git clone --recursive时,它会将子模块向下拉到super。目前我们的网址格式如下:

ssh://user.name@serverUrl/path/to/repo.git

现在假设我有3位用户:user.auser.buser.cuser.a将子模块添加到超级仓库。 user.b是构建服务器。当user.a添加子模块时,user.b应将子模块设为user.b(非user.a)。 user.c当他克隆超级然后进行提交时也是如此,日志应该反映它是由user.c而不是user.a(谁添加了子模块)提交的。我怀疑有一种方法可以指定子模块的URL,而不包括user.name作为url的一部分。这引出了我的问题。如何正确设置我的git存储库,使url不包含用户名?据推测,这涉及复制一些键,我只是好奇这是做什么的正确方法。

非常感谢 本

2 个答案:

答案 0 :(得分:0)

使用gitolite,因此就操作系统而言,您可以使用相同的用户访问所有repos。每个ssh密钥都将确定id。

答案 1 :(得分:0)

尝试以下列方式使用子模块的相对URL:

[submodule "common/sub"]
path = common/sub
url = ../common/sub