我在https://XXX1.visualstudio.com VSTS帐户下为“Project1”回购设置了托管的VS2017版本。 此repo引用了一个子模块“Project2”,该子模块已在我拥有完全管理员权限的不同VSTS帐户下设置。 https://XXX2.visualstudio.com 当我为我的顶级“Project1”仓库运行VSTS托管构建时,我在克隆“Project2”子模块时遇到身份验证错误。但是我在我的电脑上的Git客户端手动克隆子模块没有问题。获得以下错误。
致命:无法读取“https://XXX2.visualstudio.com”的用户名: 终端提示禁用致命:克隆 “https://XXX2.visualstudio.com/Projects/.../Project2”进入子模块 路径'D:/ a / 1 / s / Project2'失败
答案 0 :(得分:0)
即使您从本地电脑添加/克隆子模块仓库project2
,您也应该首次输入您的凭证。
因此,您应该提供您的凭据,以便在VSTS版本中克隆子模块仓库Project2
:
在备用身份验证凭据标签(https://XXX1.visualstudio.com/_details/security/altcreds)中,如果您没有,请添加sscondary用户名和密码:
Project2
repo(在VSTS帐户1之外)添加备用凭据在Project1仓库中,有文件.gitmodules
来记录子模块仓库Project2
,内容如下:
[submodule "Project2"]
path = Project2
url = https://account2.visualstudio.com/projects/_git/Project2
然后在子模块URL中添加备用凭证,格式为:
[submodule "Project2"]
path = Project2
url = https://<secondary username>:<secondary password>@account2.visualstudio.com/projects/_git/Project2
例如,URL应与https://myuser:password@myaccount.visualstudio.com/project/_git/repo
相对应,如上图所示。
此外,还有一个用户语音Build support for external submodules that require authentication,该请求可以在构建定义中获取外部git子模块,您可以投票和跟进。