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

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

為什么去模塊ssh自定義私有存儲庫(非github)配置仍然請求https獲?。?/h1>

我正在使用Go模塊。為了使用模塊版本,我不能使用本地模塊。例如:replace locakpkg => ../localpkg v0.1.0上述操作將失敗,因為到目前為止,替換本地路徑無法有版本(轉到 1.15)。因此,為了使模塊版本正常工作,我決定使用私有ssh存儲庫。我確實搜索了如何使私有ssh存儲庫工作兩天。通過關注許多在線文章,我做到了git config --global [email protected]:.insteadOf https://private.com/go env -w GOPRIVATE=private.com我發現go get總是會做https fetch來檢查ssl憑證。所以我也正確地配置了一個https服務器。但最終,我仍然收到一條錯誤消息:unrecognized import path "private.com/foo": reading https://private.com/foo?go-get=1: 404 Not Found我確實谷歌了這個錯誤,并發現了這個規范 https://golang.org/ref/mod#vcs-find 它說我必須讓服務器回復https獲取請求。<meta name="go-import" content="root-path vcs repo-url">如果有一種方法可以在本地模塊包中使用git標簽版本控制,我可以在go.mod中使用本地替換,而不是配置私有ssh存儲庫。如果以上幾點無法實現,那么在配置私有 ssh 存儲庫時如何避免 https 獲???我認為ssh repo與https協議無關。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

(我在 Linux 上使用 go 1.15。發布此答案時的最新穩定版本)

我解決了這個問題并在這里發帖,希望有一天這會幫助其他人。我在網上搜索沒有找到任何正確的答案。

簡而言之,答案是在所有地方都使用后綴。不帶后綴,將使用代替 (git)。.git.gitgo mod tidygo gethttpsssh

在客戶端:

該文件(在 linux 上)如果您在服務器上使用 path:~/.gitconfig/repopath/foo.git

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

該文件(在 linux 上)如果您在服務器上使用 path:~/.gitconfig~/repopath/foo.git

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

執行以下命令以在 Linux 上進行更新:~/.config/go/env

go env -w GOPRIVATE=private.com

在 中,它應該使用go.mod

require private.com/repopath/foo.git v0.1.0

在 中,它應該是file.go

import private.com/repopath/foo.git

在 SSH 服務器上

在私有服務器上應該有:foo.git/go.mod

module private.com/repopath/foo.git

并確保服務器上的 git 存儲庫具有 標記版本 。不要忘記在客戶端使用將標簽版本更新到服務器。沒有 ,則不會推送標記版本。v0.1.0git push --tags--tags

在添加后綴到所有必需的位置后,將不再發送https請求。.gitgo mod tidygo get


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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