Go 如何';去拿';在给定未知代码托管域站点时工作?

Go 如何';去拿';在给定未知代码托管域站点时工作?,go,Go,让我们举个例子。下面的命令将执行以下操作: 去找Robbike.io/ivy 这将获得$GOPATH/src下存储库的内容。太好了 现在,它是如何工作的 首先,robpike.io/ivy使用HTTP重定向进行回复: 找到HTTP/1.1 302 通过阅读go help importpath,我了解到: 如果导入路径不是已知的代码宿主站点,并且缺少 版本控制限定符,go工具尝试获取导入 并在文档的HTML中查找标记 但是,使用以下方法在重定向页面的内容中查找元标记: curl-D——原始htt

让我们举个例子。下面的命令将执行以下操作:

去找Robbike.io/ivy

这将获得$GOPATH/src下存储库的内容。太好了

现在,它是如何工作的

首先,robpike.io/ivy使用HTTP重定向进行回复:

找到HTTP/1.1 302

通过阅读
go help importpath
,我了解到:

如果导入路径不是已知的代码宿主站点,并且缺少 版本控制限定符,go工具尝试获取导入 并在文档的HTML中查找标记

但是,使用以下方法在重定向页面的内容中查找元标记:

curl-D——原始https://godoc.org/robpike.io/ivy |grep go导入

不返回任何内容

进一步阅读:

repo root是包含 方案,但不包含.vcs限定符

比如说,

导入“example.org/pkg/foo”

将导致以下请求:

(首选)

(回退,仅使用-不安全)

再次:

curl-D——原始https://robpike.io/ivy?go-get=1

不返回任何内容


因此,问题是:我如何能像罗伯·派克先生一样,使用
go get
命令使用我自己的网站?

命令
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存储库的导入路径。您也可以这样做。

命令
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存储库的导入路径。您也可以这样做。

您最后输入的命令会返回数据。当我运行
curl-D--raw时https://robpike.io/ivy\?go get\=1
在我的终端中,我得到以下数据:



Ths允许go get命令解析git存储库的路径。

您最后输入的命令确实返回数据。当我运行
curl-D--raw时https://robpike.io/ivy\?go get\=1
在我的终端中,我得到以下数据:



Ths允许go get命令解析git存储库的虚荣路径。

虚荣包路径?我喜欢这个词。感谢您的帮助。Go团队在提到该功能时使用了术语“虚荣路径”。虚荣包路径?我喜欢这个词。感谢您的帮助。Go团队在提到该功能时使用了“虚荣路径”一词。我被转义字符bug咬了一口:
curl-D--rawhttps://robpike.io/ivy\?获取\=1
。感谢您的及时回复。我很感激。啊,是的。我的zsh配置在粘贴输入时自动转义。我使用zsh。你介意分享这一行吗?我不确定哪一行可以解决这个问题。我被转义字符bug咬了:
curl-D--rawhttps://robpike.io/ivy\?获取\=1
。感谢您的及时回复。我很感激。啊,是的。我的zsh配置在粘贴输入时自动转义。我使用zsh。你介意分享这句话吗?我不确定哪句话能解决这个问题。