go get:Git设置被忽略

时间:2018-09-19 10:50:42

标签: git go go-get

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

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

$(document).on('click', '#SubmitButton', function () { 
`enter code here`
});

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

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

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

$ 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)

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

我知道问题类似于以下问题:go get: Git settings ignored以及许多其他有关私人回购的问题

我的问题不同

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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