我嘗試從 mac 的私有 gitlab 服務器獲取存儲庫。我將 git 配置 (~/.gitconfig) 設置為使用 ssh 而不是 https :[url "[email protected]:"]
insteadOf = https://gitlab.mysite.com/當我使用 https url 克隆項目時,我得到了正確的替換$ git clone https://gitlab.mysite.com/group/project$ cd project
$ git remote -v
origin [email protected]:group/project (fetch)
origin [email protected]: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 的驗證。
- 1 回答
- 0 關注
- 163 瀏覽
添加回答
舉報
0/150
提交
取消