如何在 github 存储库的特定标签上执行“go get”

我正在尝试使用编译 InfluxDB 数据库(版本 v0.8.8) go get github.com/influxdb/influxdb

但这会拉动主分支,我需要v0.8.8标签。

我曾尝试这样做: go get github.com/influxdb/influxdb/releases/tag/v0.8.8但这失败说无法找到。

我还尝试对go getmaster 分支进行常规检查,然后使用gitin手动检查标签GOPATH/src/github...以设置 corret 版本。

使用最后一种方法的问题是,当我尝试使用go get -u -f ./...它拉取依赖项时,它会尝试在 master 分支中找到它们,而其中一些在 master 分支上不存在......

TL;DRgo get在特定的 github 标签上执行,并拉取正确的依赖项。


翻翻过去那场雪
浏览 256回答 3
3回答

慕的地8271018

无法使用该go get工具。相反,您需要使用第三方 go 包管理工具或为您希望管理更细粒度的包创建自己的分支。与一位在 Google 工作的人交谈,他承认了这个问题/要求,他说他的团队使用的 vendoring 很庞大,他们可能很快会用官方工具解决它。阅读更多:第三方包管理工具参考golang 团队的博客文章讨论了实现 vendoring 的方法Go 1.6 中的供应商Vendoring 已经从 go 1.6 中的实验性版本中释放出来(在这篇文章最初写完之后),这使得使用第三方工具使用特定标签/包版本的过程变得更加容易。go get仍然没有获取特定标签或版本的功能。有关 vendoring 如何工作的更多信息:了解和使用供应商文件夹Go 1.11 中的模块Go 1.11 发布了一个名为 modules 的实验性功能来改进依赖管理,他们希望在 Go 1.12 中将其发布为稳定的:关于 Go 1.11 中模块的信息

扬帆大鱼

我在这方面取得了成功:运行没有标签的 get 命令 - 它应该克隆主分支。移至克隆目录并签出所需的标记或分支。再次运行 go get 命令,它应该处理检出分支上的命令。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go