为了账号安全,请及时绑定邮箱和手机立即绑定

go get:忽略 Git 设置

go get:忽略 Git 设置

Go
开满天机 2023-04-04 17:18:45
我尝试从 mac 的私有 gitlab 服务器获取存储库。我将 git 配置 (~/.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 settings ignored和许多其他关于私人回购的问题我的问题不同
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

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

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

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

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

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


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信