我的同事v3.0.1在更新后添加go.mod了/v3后缀(https://github.com/golang/go/wiki/Modules#releasing- modules-v2-or-higher)之前推了一个标签。我已经更新了模块路径(go.mod)和所有导入路径(*.go)对其进行了修复,标记为v3.0.2。
v3.0.1
go.mod
/v3
*.go
v3.0.2
现在的问题是:
go get -v git.example.com/owner/repo@v3.0.2 go: finding git.example.com/owner/repo v3.0.2 go: git.example.com/owner/repo@v0.0.0-20190722053407-d85c4f69ad17: go.mod has post-v0 module path "git.example.com/owner/repo/v3" at revision d85c4f69ad17
发现了这一点:gobuild一直抱怨:go.mod具有post-v0模块路径
因此,我删除了v3.0.0和v3.0.1标记,将其指向最新的提交,然后再次按下,但问题仍然存在。
v3.0.0
我注意到,go.mod仍然将旧版本称为间接依赖项:
require ( git.example.com/owner.repo v0.1.2 // indirect
即使我将其更改为/v3 v3.0.2它也将v0.1.12自动恢复为。
/v3 v3.0.2
v0.1.12
为什么?
我错过了什么?
2019年7月23日星期二05:54:56 +07
rm go.* go mod init git.example.com/dependent/project go mod tidy
并go.mod已正确更新:
require ( - git.example.com/owner/repo v0.1.2 + git.example.com/owner/repo/v3 v3.0.2
但go get -v git.example.com/owner/repo@v3.0.2仍然返回错误:
go get -v git.example.com/owner/repo@v3.0.2
go: finding git.example.com/owner/repo v3.0.2 go: git.example.com/owner/repo@v0.0.0-20190722053407-d85c4f69ad17: go.mod has post-v0 module path "git.example.com/owner/repo/v3" at revision d85c4f69ad17
(d85c4f69ad17是最新的提交master)
d85c4f69ad17
master
我注意到,有两个v0.1.2和v3.0.2在go.sum:
v0.1.2
go.sum
git.example.com/owner/repo v0.1.2 h1:mCGJEmyrFDTCGkRfUIORpqdrNkSONQ6K+AcTNgxqveY= git.example.com/owner/repo v0.1.2/go.mod h1:FfUKnyPrARCtAXQZ3BQVJI7h2eJ0UpQBMLg4bNs4Kdc= git.example.com/owner/repo/v3 v3.0.2 h1:mJtDKLeiP8vMRSZo08i/k/KDbIoZTlKW2aWu7DUBvMM= git.example.com/owner/repo/v3 v3.0.2/go.mod h1:64LE0ts0Lk9InIQyhPYGmnxs6LZIl6H4Iorl1EXfqxo=
请注意我的go get命令:
go get
它应该是:
go get -v git.example.com/owner/repo/v3@v3.0.2