用法:
go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]
Get 将其命令行参数解析为特定模块版本的包,更新 go.mod 以要求这些版本,将源代码下载到模块缓存中,然后构建并安装指定的包。
要为包添加依赖项或将其升级到最新版本:
go get example.com/pkg
要将软件包升级或降级到特定版本:
go get example.com/pkg@v1.2.3
要删除对模块的依赖并降级需要它的模块:
go get example.com/mod@none
有关详细信息,请参阅 https://golang.org/ref/mod#go-get。
‘go install’ 命令可用于构建和安装软件包。指定版本后,“go install”以模块感知模式运行并忽略当前目录中的 go.mod 文件。例如:
go install example.com/pkg@v1.2.3
go install example.com/pkg@latest
有关详细信息,请参阅“go help install”或 https://golang.org/ref/mod#go-install。
除了构建标志(在“go help build”中列出)之外,“go get”还接受
以下标志。
- -t 标志指示开始考虑构建命令行上指定的包的测试所需的模块。
- -u 标志指示获取更新提供依赖项的模块命令行上命名的软件包以在可用时使用较新的次要版本或补丁版本。
- -u=patch 标志(不是 -u patch)还指示 get 更新依赖项,但更改默认值以选择补丁版本。当 -t 和 -u 标志一起使用时,get 也会更新测试依赖项。
- -insecure 标志允许使用不安全的方案(例如 HTTP)从存储库中获取和解析自定义域,还可以使用校验和数据库绕过模块总和验证。谨慎使用。此标志已弃用,将在 go 的未来版本中删除。要允许使用不安全的方案,请改用 GOINSECURE 环境变量。要绕过模块总和验证,请使用 GOPRIVATE 或 GONOSUMDB。有关详细信息,请参阅“go help environment”。
- -d 标志指示 get 不要构建或安装包。 get 只会更新 go.mod 并下载构建包所需的源代码。
不推荐使用 get 构建和安装软件包。在未来的版本中, -d 标志将默认启用,并且 ‘go get’ 将仅用于调整当前模块的依赖项。要使用当前模块的依赖项安装包,请使用“go install”。要安装忽略当前模块的软件包,请在每个参数后使用带有@version 后缀(如“@latest”)的“go install”。
有关模块的更多信息,请参阅 https://golang.org/ref/mod。
有关指定包的更多信息,请参阅“go help packages”。
本文描述了使用模块管理源代码和依赖项的行为。相反,如果 go 命令在 GOPATH 模式下运行,则 get 的标志和效果的详细信息会更改,“go help get”也是如此。
请参阅“go help gopath-get”。
另请参阅:go build、go install、go clean、go mod。