go get -u @latest没有更新依赖模块
使用 go get -u gitee.com/qingfeng-169/hello-b@latest
时,如果没有进行更新,可能有以下几种原因:
1. 没有发布稳定版本 (vX.X.X
)
@latest
表示获取该模块最新的稳定版本(即带有vX.X.X
形式的版本号),而不是最新的commit
或branch
。- 如果模块
gitee.com/qingfeng-169/hello-b
没有发布任何稳定版本(没有v1.0.0
这样的 tag),那么@latest
可能不会更新到新版本。
2. 没有新的版本发布
- 如果
gitee.com/qingfeng-169/hello-b
已经发布了一个稳定版本,并且自上次发布后没有新的稳定版本发布,go get -u @latest
不会更新,因为已经是最新版本。 @latest
获取的不是分支上最新的代码,而是最新的发布版本。
3. 缓存问题
-
Go 有模块代理和缓存机制,可能本地缓存的版本是最新的,导致
go get -u
没有看到新的更新。如果你想强制清除缓存并重新获取,可以尝试清理 Go 的模块缓存:go clean -modcache
然后再执行
go get -u gitee.com/qingfeng-169/hello-b@latest
以确保它从远程获取最新的版本。
解决方案
-
如果想获取最新的提交或者分支:
使用@master
或其他分支名来明确指定要更新的分支:go get -u gitee.com/qingfeng-169/hello-b@master
-
如果模块没有发布稳定版本:
- 如果模块没有发布稳定版本,你可以考虑使用
@master
或@<commit>
来获取最新的代码,而不是@latest
,因为@latest
只能获取最新的发布版本。
@master
是git的分支,会拉去该分支的最新代码。
@<commit>
是提交的记录id,会拉该提交记录的版本。 - 如果模块没有发布稳定版本,你可以考虑使用
总结
@latest
只更新到最新的稳定版本(带 vX.X.X
版本号的 tag)。如果模块没有发布稳定版本或者你需要最新的分支代码,应该使用 @master
或其他分支名。