Golang中GitHub标签无法识别的问题如何解决

Golang中GitHub标签无法识别的问题如何解决 我的标签似乎至少没有被 Go 识别。 当我使用 go list 命令检查我的模块时,它报告了错误:

>go list -m github.com/bon-ami/eztools@v1.0
go list -m: module github.com/bon-ami/eztools: no matching versions for query "v1.0"

然而,我可以对别人的模块执行相同的操作,例如:

>go list -m github.com/sagikazarmark/modern-go-application@0.3.0
github.com/sagikazarmark/modern-go-application v0.0.0-20191115235526-e229bcc9c747

但我没有看到我的标签和参考项目的标签之间有任何区别。同时,我想知道这是 GitHub 的问题还是 Go 的问题。非常感谢。


更多关于Golang中GitHub标签无法识别的问题如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html

6 回复

1.0 版本仍然只有 2 个段,你试过有 3 个段的版本吗?

更多关于Golang中GitHub标签无法识别的问题如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


据我理解,版本号需要遵循语义化版本规范,而该规范要求使用三个部分。你的标签只有两个部分。

可能是因为我的网络连接有问题,我一直使用的是缓存……但即使我使用 git 命令删除了标签,GitHub 仍然记得我之前的标签,而且它们在网页上也不再显示。

  1. 删除仓库并重新创建一个
  2. 上传文件
  3. 在网页上创建标签 v0.0.1

我创建了一个新版本“1.0”,而不是“v1.0”,并且它成功了。 但是其他模块仍然没有将此版本视为最新版本,

module github.com/bon-ami/jirrit

go 1.14

require github.com/bon-ami/eztools v0.0.0-20201120054256-b5ba9c3ab6c5

1.0.0 版本的表现相同, 并且 github.com/kr/binarydist@v0.1.0 包含了 v,但它却能正常工作。所以一定还有我理解错误的地方。

>go list -m github.com/kr/binarydist@v0.1.0
github.com/kr/binarydist v0.1.0

这个问题通常是由于Git模块标签格式不符合Go模块版本规范导致的。Go要求版本标签遵循语义化版本格式,并且以v开头。

首先检查你的标签格式是否正确:

// 查看本地所有标签
git tag -l

// 查看远程所有标签
git ls-remote --tags origin

确保你的标签格式是vX.Y.Z的形式,例如v1.0.0而不是1.0。修复标签格式:

// 删除错误的标签
git tag -d v1.0
git push origin :refs/tags/v1.0

// 创建正确的语义化版本标签
git tag v1.0.0
git push origin v1.0.0

如果标签格式正确但仍然无法识别,可能是Go模块代理缓存问题。清理缓存并重新获取:

// 清理Go模块缓存
go clean -modcache

// 设置直接访问GitHub,绕过代理
GOPROXY=direct go list -m github.com/bon-ami/eztools@v1.0.0

检查模块的go.mod文件是否正确定义了模块路径:

// go.mod文件应该包含正确的模块路径
module github.com/bon-ami/eztools

go 1.21

如果问题仍然存在,可以尝试强制Go工具重新同步模块信息:

// 删除模块缓存中的特定包
go clean -cache -modcache

// 使用-json参数查看详细错误信息
go list -m -json github.com/bon-ami/eztools@v1.0.0

对于私有仓库,确保正确配置了Git凭证:

// 设置Git使用HTTPS凭证存储
git config --global credential.helper store

// 或者对于SSH
git config --global url."git@github.com:".insteadOf "https://github.com/"

最后验证标签是否能在GitHub上直接访问:

// 通过GitHub API检查标签是否存在
curl https://api.github.com/repos/bon-ami/eztools/tags
回到顶部