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

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

當給定一個未知的代碼托管域站點時,“go get”如何工作?

當給定一個未知的代碼托管域站點時,“go get”如何工作?

Go
守候你守候我 2021-12-27 15:35:50
讓我們舉個例子。下面的命令將執行:go get robpike.io/ivy這將使我獲得 $GOPATH/src 下存儲庫的內容。偉大的!現在,它是如何工作的?首先,robpike.io/ivy 回復 HTTP 重定向:HTTP/1.1 302 Found<a href="http://godoc.org/robpike.io/ivy">Found</a>通過閱讀go help importpath,我了解到:如果導入路徑不是已知的代碼托管站點并且也缺少版本控制限定符,go 工具會嘗試通過 https/http 獲取導入并在文檔的 HTML 中查找標記但是,使用以下命令在重定向頁面的內容中查找元標記:curl -D --raw https://godoc.org/robpike.io/ivy | grep go-import什么都不返回。進一步閱讀:repo-root 是包含方案但不包含 .vcs 限定符的版本控制系統的根。例如,導入“example.org/pkg/foo”將導致以下請求:https://example.org/pkg/foo?go-get=1(首選)http://example.org/pkg/foo?go-get=1 (后備,僅適用于 -insecure)再次:curl -D --raw https://robpike.io/ivy?go-get=1什么都不返回。所以問題是:我怎樣才能像 Rob Pike 先生一樣做同樣的事情,并通過go get命令使用我自己的網站?
查看完整描述

2 回答

?
九州編程

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

您輸入的最后一個命令會返回數據。當我curl -D --raw https://robpike.io/ivy\?go-get\=1在終端中運行時,我得到以下數據:

<meta name="go-import" content="robpike.io/toy git https://github.com/robpike/toy.git"><meta name="go-import" content="robpike.io/cmd/translate git https://github.com/robpike/translate.git"><meta name="go-import" content="robpike.io/cmd/freq git https://github.com/robpike/freq.git"><meta name="go-import" content="robpike.io/cmd/hira git https://github.com/robpike/hira.git"><meta name="go-import" content="robpike.io/cmd/kana git https://github.com/robpike/kana.git"><meta name="go-import" content="robpike.io/cmd/kata git https://github.com/robpike/kata.git"><meta name="go-import" content="robpike.io/nihongo git https://github.com/robpike/nihongo.git"><meta name="go-import" content="robpike.io/cmd/typo git https://github.com/robpike/typo.git"><meta name="go-import" content="robpike.io/filter git https://github.com/robpike/filter.git"><meta name="go-import" content="robpike.io/cmd/unicode git https://github.com/robpike/unicode.git"><meta name="go-import" content="robpike.io/cmd/doc git https://github.com/robpike/doc.git"><meta name="go-import" content="robpike.io/cmd/scrub git https://github.com/robpike/scrub.git"><meta name="go-import" content="robpike.io/cmd/strings git https://github.com/robpike/strings.git"><meta name="go-import" content="robpike.io/ivy git https://github.com/robpike/ivy.git"><meta name="go-import" content="robpike.io/cmd/now git https://github.com/robpike/now.git">

這允許 go get 命令解析 git 存儲庫的虛路徑。


查看完整回答
反對 回復 2021-12-27
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

該命令curl -D --raw 'https://robpike.io/ivy?go-get=1'返回一個包含標簽的 HTML 文檔

<meta name="go-import" content="robpike.io/ivy git https://github.com/robpike/ivy.git">

go get命令使用此元標記來解析實際 git 存儲庫的虛導入路徑。你也可以做到的。


查看完整回答
反對 回復 2021-12-27
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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