其中带有不存在标签的伪版本

当从支持 go.mod 的模块中导入GOPATH样式依赖项时,我得到了一个神秘的伪版本。


$ 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存储库仅定义了一个v3.9.0标签。该master分支在此之前有一些提交。


有谁知道v3.9.1标签是从哪里获取的?该标签不存在。提交 ID169848dd8137确实指向HEADof master,但没有标记。难道只是go mod聪明地说“嘿,在v3.9.0标签暗示某个版本后提交v3.9.1”?


幕布斯7119047
浏览 106回答 2
2回答

慕标琳琳

简而言之,由于您选择了 @master,它会使用 master 分支上最新提交的时间戳和哈希值创建此版本。版本号是根据最新标签+1修订版生成的。

交互式爱情

这是预期的行为。这是上述链接中的信息 -当目标提交之前的最新版本提交为 vX.YZ 时,使用 vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdefabcdef
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go