咨询关于Go语言版本管理及伪版本管理机制问题,分别是关于git中的tag与go get时@后版本的对应关系问题和commit与伪版本之间关系的问题
1. 运行环境
go 1.19.1,amd64
2. 问题描述?
希望能得到关于这两个问题的解答。
4. 您实际得到的结果?
例如 “github.com/apache/trafficcontrol” 依赖包,commit编号为ffcd4b26521b711996eaab1b415893251b7c4392的commit,在git中显示的tag为RELEASE-7.0.0和RELEASE-7.0.0-RC2,但是我们通过以下命令
“go list -m -json github.com/apache/trafficcontrol@RELEASE-7.0.0“得到的却是伪版本“v1.1.4-0.20220721153627-ffcd4b26521b”。例如 “github.com/go-yaml/yaml” 依赖包,通过以下两条命令:
“go list -m -json github.com/go-yaml/yaml@b804f79fbc2b1acc1a67ef1ca515eecb1ff50ae4”
“go list -m -json github.com/go-yaml/yaml/v2@b804f79fbc2b1acc1a67ef1ca515eecb1ff50ae4”
都能正常反馈结果,但返回的伪版本信息分别是“v0.0.0-20190314144205-b804f79fbc2b”和“v2.2.2-0.20190314144205-b804f79fbc2b”,对于这两个伪版本,哪个才是正确的,我们应该如何判断。
你到底在考虑啥。list出来的有go版本管理的本地hash,用来处理各个模块使用的依赖。第二个,v1和v2 版本有区别的。
go版本,开发需要知道的是有打tag的和和没有打tag的区别,其他的就是go版本需要处理的了