git - 带有不存在标签的伪版本

标签 git go go-modules

导入 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 , 确实指向 HEADmaster ,但它没有被标记。只是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/

相关文章:

go - go.mod上的严格版本

Git 日志统计摘要结果说明

git - 在 Gitlab 上删除远程标签时如何修复 "You are not allowed to change existing tags on this project."?

go - 如何验证来自appEngine灵活的可恢复上传,类似于golang中的SignedURL

string - 突变Golang中的字符串?

go - 仅从内部代理下载私有(private)模块并从外部代理获取公共(public)模块

go - 为什么我使用 golang 模块,并导入一个未选择模块的模块,但 go.sum 文件有 go.mod 文件哈希?

git - 推送时自动从 GitHub 部署到服务器

git - 当 kernel.org 宕机时,在线查找 Git 引用内容的最佳位置是什么?

Go Martini 处理 HTML 表单数据