云构建在 git 子模块上失败

Posted

技术标签:

【中文标题】云构建在 git 子模块上失败【英文标题】:Cloud build failing on git submodules 【发布时间】:2017-09-12 06:29:04 【问题描述】:

我在 VSTS 上托管的带有子模块的 git repo 中有一个 Unity 项目,我已将 git repo 与 Unity cloud build 集成在一起。

当 Cloud Build 厌倦了构建时,它似乎可以很好地检查所有内容,直到它到达模块,它挂在“328:克隆到‘Assets/MySubmodule’中……并在那里等待大约由于耗时过长,构建失败前一小时。

我有时会收到如下错误:

“https://mycompany.visualstudio.com”的用户名:将“https://mycompany.visualstudio.com/DefaultCollection/_git/mysubmodulerepopath”克隆到子模块路径“Assets/mysubmodule”失败

我认为问题可能是子模块没有被引用为 ssh 链接,而是直接作为 https,是否有一些解决方法或我需要做些什么才能让它们工作?

【问题讨论】:

【参考方案1】:

我认为问题可能是子模块没有被引用为 ssh 链接,而是直接作为 https

然后,您可以再次克隆,这次使用 ssh。 首先,输入:

git config --global url."git@github.com:".insteadOf "https://github.com/"

然后再次克隆你的 repo (git clone --recursive)

【讨论】:

【参考方案2】:

通过更新子模块 git urls 以使用 ssh 解决了这个问题

【讨论】:

这确实是一种方式。 +1 我的解决方案不涉及更改跟踪文件。

以上是关于云构建在 git 子模块上失败的主要内容,如果未能解决你的问题,请参考以下文章

git clone 有效; git子模块失败“权限被拒绝”

GitLab runner 获取子模块的“主机密钥验证失败”

在 ssh-agent 中同时加载两个 ssh-keys 时,克隆(更新)git 子模块失败

应该如何为 laravel 4 composer 包设置 git 子模块?

CMake - 静态 yaml-cpp 作为 git 子模块的链接器错误

使用 CMake 仅构建 git 子模块存储库的一部分