亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去使用 ssh 而不是 https(不在 github 上)

去使用 ssh 而不是 https(不在 github 上)

Go
喵喔喔 2022-06-27 15:09:02
我們有一個只能通過 ssh/git(沒有 https)訪問的私有代碼存儲庫,我們希望在那里托管我們的 go 代碼/模塊。首先我試過:git config --global url."[email protected]:".insteadOf "https://code.internal.local/"所以,以下兩項工作都很好:git clone [email protected]:reponame.gitgit clone https://code.internal.local/reponame但是go get code.internal.local/reponame失敗了,因為 go 仍然堅持嘗試 https://... 而不是 git。package code.internal.local/reponame: unrecognized import path "code.internal.local/reponame": https fetch: Get "https://code.internal.local/reponame?go-get=1": dial tcp 192.168.0.5:443: i/o timeout
查看完整描述

3 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

我檢查了我的.gitconfig并找到了這個(對于github私人倉庫)-

[url "ssh://[email protected]/"]
        insteadOf = https://github.com/

上面的配置對我有用。您也可以嘗試在項目根目錄中創建一個.netrc文件,但不應其推送到遠程代碼倉庫。


查看完整回答
反對 回復 2022-06-27
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

問題

您觀察到的行為在文檔的“遠程導入路徑”部分中有詳細說明go get。特別是,僅通過查看遠程導入路徑code.internal.local/reponame,go get無法知道哪個 VCS 以及哪個 URL 用于實際托管該包。

為了解決這個問題,go get使用一組 HTTPS(和 HTTP,作為后備,必須顯式啟用)GET 請求到一組由指定導入路徑構造的特殊 URL。假定為此類調用提供服務的任何東西都能夠以標識要使用的 VCS 和存儲庫的 URL 的回復進行響應。

可能的解決方案

如果您正在使用模塊,您可以在團隊方便的地方設置一個專用的“模塊代理”(此外,可能部署了許多代理),并讓團隊成員使用GOPROXY指向方便實例的環境變量。有關go help modules更多信息,請參閱。

否則,如果您可以放置一個網絡服務器來回答遠程導入路徑解析請求,您可以這樣做;nginx 和 apache 可以用于它們的庫存模塊。

否則,您可能需要求助于手動操作。


查看完整回答
反對 回復 2022-06-27
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

我在這里發布了詳細答案https://stackoverflow.com/a/65925691/348719

基本上,您應該在客戶端和服務器上添加.git后綴。沒有后綴,將使用 https。requiremodule.gitgo get

  • 在客戶端(go.mod)(將版本號更改為更正):

require code.internal.local/reponame.git v0.1.0

最好添加go env -w GOPRIVATE=code.internal.local

  • 在服務器 (go.mod)

module code.internal.local/reponame.git


查看完整回答
反對 回復 2022-06-27
  • 3 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號