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

但是这会 pull 主分支,我需要v0.8.8的标签.

我试过了:go get github.com/influxdb/influxdb/releases/tag/v0.8.8,但是这个失败了,说找不到.

我还try 对主分支执行常规的go get操作,然后在GOPATH/src/github...中使用git手动签出标签,以便设置Corret版本.

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

TL;DR:对特定的GitHub标签执行go get,并拉取正确的依赖项.

推荐答案

不可能使用go get工具.相反,您需要使用第三方go软件包管理工具,或者为希望更细粒度地管理的软件包创建自己的Forking .

与一位在谷歌工作的人交谈时,他承认这个问题/要求,他说他的团队使用的自动售货机非常庞大,他们可能很快就会用官方工具解决这个问题.

Read more:

Vendoring in Go 1.6

Vendoring已经达到released from experimental in go 1.6(在本文最初 compose 之后),这使得使用第三方工具使用特定标签/版本的软件包的过程更加容易.go get仍然没有获取特定标签或版本的功能.

更多关于供应商如何运作的信息:Understanding and using the vendor folder

Modules in Go 1.11

Go 1.11发布了一个名为"模块"的实验性功能,以改进依赖关系管理,他们希望在Go 1.12:Information about modules in Go 1.11中以稳定的状态发布

Go相关问答推荐

出口上下文值密钥的安全方法?

有没有办法通过Go cmdline或IDE(IntelliJ)找出我的 struct 实现了什么接口?

未对GoFr中的所有请求进行跟踪

Go中的net.SplitHostPort(r.RemoteAddr)安全性

golang有int32溢出吗?

exec的可执行决议.命令+路径

使用Go和Operator SDK通过API调用设置Kubernetes Pods的安装步骤

如何在 Go 服务中导入 monorepo 中的包?

如何将已知类型转换为指向switch 中类型参数的指针?

GoLang: gocui 边框 colored颜色

动态 SQL 集 Golang

有没有办法约束(通用)类型参数?

函数实现接口时的模式名称是什么?

使用自定义处理程序 nats golang 保留订阅方法

如何在 Docker 容器中使用私有存储库进行身份验证

如何将多个切片打印为一个切片?

try 运行 docker-compose up -d 时出现错误

如何在Golang中的差异函数中杀死命令Exec

正则表达式处理数字签名的多个条目

Golang LinkedList 删除第一个元素