繁体   English   中英

go get:Git设置被忽略

[英]go get: Git settings are ignored

我尝试从Mac的私有gitlab服务器获取存储库。

我将git config(〜/ .gitconfig)设置为使用ssh而不是https:

[url "git@gitlab.mysite.com:"]
    insteadOf = https://gitlab.mysite.com/

当我使用https url克隆项目时,我得到了正确的替换

$ git clone https://gitlab.mysite.com/group/project
$ cd project
$ git remote -v
origin  git@gitlab.mysite.com:group/project (fetch)
origin  git@gitlab.mysite.com:group/project (push)

但是,当我使用go get时,它将尝试使用https url,但失败

$ go get gitlab.mysite.com/group/project
package gitlab.mysite.com/group/project: unrecognized import path "gitlab.mysite.com/group/project" (https fetch: Get https://gitlab.mysite.com/group/project?go-get=1: x509: certificate signed by unknown authority)

为什么go get不使用我的git配置? 我该如何解决?

我知道问题类似于这个问题: go get:Git设置被忽略 ,还有许多其他关于私人仓库的问题

我的问题不一样

该错误发生在git clone调用之前。 当您调用go get ,它将对URL进行HTTPS调用以检查标头,并查看它是否提供go get重定向。 那就是失败的原因。

失败的原因是服务器提供的证书未由您在本地系统上指定为受信任的证书颁发机构签名。 这可能是因为您的内部gitlab使用的是未签名的证书,用于对其签名的CA尚未添加到本地系统,或者您的工作场所使用的是中间人样式的代理,而您没有没有添加该代理的 CA。 您可以尝试解决证书问题,也可以直接运行:

go get -insecure gitlab.mysite.com/group/project

-insecure标志允许使用非安全方案(例如HTTP)从存储库中获取数据并解析自定义域。 请谨慎使用。

值得注意的是,这绕过了用于签署服务器证书的CA的验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM