小编典典

如何将 go.mod 中的 Go 模块依赖项指向 repo 中的最新提交?

all

从 v1.11 开始,Go 添加了对模块的支持。命令

go mod init <package name>
go build

将生成包含所有找到的包依赖项版本的文件go.modgo.sum

如果一个模块没有任何版本,则使用该模块的最新提交。如果一个模块确实有发布,则选择最新的一个作为依赖项。

但是,有时我需要尚未发布的版本中的功能,而是来自该版本之后的提交。如何设置go.mod不指向模块的发布,而是指向模块存储库中的特定提交?

看起来我可以在 go.mod 中手动完成

module /my/module

require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)

wherev0.0.0与最后发布的发布标签不对应,20181121201909是提交时间戳af044c0995fe还是提交哈希?是否应该手动查找和输入此类信息,还是有更好的方法?


阅读 102

收藏
2022-07-17

共1个答案

小编典典

只需在您想要的提交哈希处“获取”:

go get github.com/someone/some_module@af044c0995fe

‘go get’ 将正确更新依赖文件(go.mod、go.sum)。

更多信息:https ://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-
dependencies

2022-07-17