导入 GOPATH
时来自启用 go.mod 的模块中的样式依赖项,我得到了一个神秘的伪版本。
$ cd $(mktemp -d)
$ go mod init github.com/foo/test
go: creating new go.mod: module github.com/foo/test
$ go get github.com/bar/api@master
$ cat go.mod
module github.com/foo/test
go 1.12
require (
github.com/bar/api v3.9.1-0.20190923092516-169848dd8137+incompatible // indirect
)
$
github.com/bar/api
repo 只有一个 v3.9.0
标签定义。 master
分支是在那之前的一些提交。有谁知道
v3.9.1
在哪里标签是从哪里提取的?该标签不存在。提交 ID,169848dd8137
, 确实指向 HEAD
的 master
,但它没有被标记。只是go mod
只是聪明地说嘿,在 v3.9.0
之后提交标签暗示 v3.9.1
的某些版本?
最佳答案
这是一个“伪版本”,在这里解释:
https://tip.golang.org/cmd/go/#hdr-Pseudo_versions
简而言之,由于您选择了@master,它会使用 master 分支上最新提交的时间戳和哈希创建此版本。版本号是从最新的标签 +1 修订版生成的。
关于git - 带有不存在标签的伪版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58175969/