2

我想克隆一个包含其子模块的存储库。

我已经了解了这个问题--recursive的选项,但是这个解决方案要求子模块存储库可以从克隆主机访问。

是否有一些开关可以直接从可访问的主机克隆子模块?

有一个 https 代理,理论上我可以通过它访问子模块存储库,但是克隆主机没有安装所需的证书。因此,找到一种在用户空间中安装某个 https 证书的方法也可能是一种解决方案。

4

1 回答 1

2

如果远程服务器(您评论中的 host1)必须代表您执行克隆或获取,那么不,您不能这样做。

但是,由于子模块本身就是存储库,因此如果将它们克隆到 host1 上,您可以直接使用它们。克隆主存储库后,编辑.gitmodules文件并将 Github URL 更改为 host1:mainrepo 的相应子目录:

[submodule "submod1"]
        path = extern/sub1
        url = git://github.com/user/myproject

更改为

[submodule "submod1"]
        path = extern/sub1
        url = host1:git/mainproject/extern/sub1

然后,您可以使用这些git submodules命令来处理它们。

(但您必须小心:.gitmodules除非您真的有意,否则不要将您的更改提交或推送到 host1 上的子模块!)


对于您的替代问题,请查看 Git 配置设置http.proxyhttp.sslCert. 您应该能够直接使用后者提供证书文件,而无需在系统 CA 路径中“安装”它。

于 2012-09-11T19:36:36.610 回答