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

发布于 2024-12-10 22:32:22 字数 777 浏览 0 评论 0原文

我正在尝试设置一个 git 存储库,其中包含一个子模块存储库。让我们调用 2 个存储库:Super 和 Super子这个例子。因此,我初始化了超级存储库,然后为第二个存储库添加了 git 子模块。我使用 Super 存储库提交了 .gitmodules 文件,这样当您执行 git clone --recursive 时,它​​会将子模块与超级模块一起拉下来。目前我们的网址格式如下:

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 也是如此,当他克隆 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晨光如昨 2024-12-17 22:32:22

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

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

Try using relative urls for submodules in a manner:

[submodule "common/sub"]
path = common/sub
url = ../common/sub
稳稳的幸福 2024-12-17 22:32:22

使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文