git 子模块作为构建的一部分
我正在尝试设置一个 git 存储库,其中包含一个子模块存储库。让我们调用 2 个存储库:Super 和 Super子这个例子。因此,我初始化了超级存储库,然后为第二个存储库添加了 git 子模块。我使用 Super 存储库提交了 .gitmodules 文件,这样当您执行 git clone --recursive 时,它会将子模块与超级模块一起拉下来。目前我们的网址格式如下:
ssh://user.name@serverUrl/path/to/repo.git
现在假设我有 3 个用户:user.a
、user.b
和 user.c
。 user.a
将子模块添加到超级存储库中。 user.b
是构建服务器。当 user.a
添加子模块时,user.b
应该将子模块作为 user.b
(而不是 user.a)。对于
user.c
也是如此,当他克隆 super 然后进行提交时,日志应该反映它是由 user.c
提交的,而不是由 user 提交的.a
(谁添加了子模块)。我怀疑有一种方法可以指定子模块的 url,而不将 user.name 作为 url 的一部分。这引出了我的问题。如何正确设置 git 存储库,使 url 不包含用户名?想必这涉及复制一些密钥,我只是好奇执行此操作的正确方法是什么。
非常感谢 本
I am trying to setup a git repository with a submodule repository inside it. Lets call the 2 repos: Super & Sub for this example. So I initialized the Super repo then did a git submodule add
of the 2nd repo. I committed the .gitmodules
file with the Super repo so that when you do a git clone --recursive
it pulls the submodule down along w/ the super. Currently our urls are formatted like this:
ssh://user.name@serverUrl/path/to/repo.git
Now lets say I have 3 users: user.a
, user.b
and user.c
. user.a
adds the submodule to the super repo. user.b
is the build server. when user.a
adds the submodule then user.b
should get the submodule as user.b
(NOT user.a
). The same goes for user.c
when he clones super and then does a commit, the log should reflect that it was committed by user.c
and not as user.a
(who added the submodule). I suspect there is a way to specify the url of the submodule WITHOUT including the user.name as part of the url. Which leads me to my question. How can I properly setup my git repository such that the url does not include the username? Presumably this involved copying some keys around, I'm just curious what is the proper way to do this.
many thanks
Ben
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试以以下方式使用子模块的相对 url:
Try using relative urls for submodules in a manner:
使用 gitolite,这样就操作系统而言,您可以使用同一用户访问所有存储库。每个 ssh 密钥都会确定 id。
Use gitolite so you can access all repos using the same user as far as the OS is concerned. Each ssh key will determine the id.