【问题标题】:git submodules as part of a buildgit 子模块作为构建的一部分
【发布时间】:2011-12-22 00:33:59
【问题描述】:

我正在尝试设置一个带有子模块存储库的 git 存储库。让我们调用 2 个 repos:此示例的 Super & Sub。所以我初始化了超级回购然后做了第二个回购的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 克隆 super 然后提交时也是如此,日志应该反映它是由 user.c 提交的,而不是 user.a (谁添加了子模块)。我怀疑有一种方法可以指定子模块的 url,而不包括 user.name 作为 url 的一部分。这引出了我的问题。如何正确设置我的 git 存储库,使 url 不包含用户名?大概这涉及复制一些密钥,我只是好奇这样做的正确方法是什么。

非常感谢 本

【问题讨论】:

标签: git build git-submodules


【解决方案1】:

尝试以某种方式为子模块使用相对 url:

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

【讨论】:

    【解决方案2】:

    使用 gitolite,这样就操作系统而言,您可以使用同一用户访问所有存储库。每个 ssh 密钥都会确定 id。

    【讨论】:

    • 我们最终使用bitbucket.org/sdorra/scm-manager/wiki/Home 来执行此操作,目前看来运行良好...
    • 这也可以 :) 但是请检查 gitolite,因为它为每个分支的权限等提供了一些更简洁的选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多