go get 命令详解
· 阅读需 2 分钟
常用命令
-d
:下载模块到本地系统,但不安装。这通常用于仅下载源码而不进行编译的场景。
-u
:更新已有的模块及其依赖到新版本。这包括直接依赖和间接依赖。
-u=patch
:限制更新到补丁版本,即在主要和次要版本号不变的情况下更新到最新修订版。-u=minor
:更新到允许的最新次要版本,可能会包括主要版本号不变的新功能。
-t
:除了获取包本身,还会获取包用于测试的依赖。
-insecure
:允许使用不安全的协议,如 HTTP,进行网络操作。这在访问某些未使用 HTTPS 的私有仓库时可能需要,但通常不推荐因安全风险。
-v
:显示详细的操作信息
版本控制参数
可以指定获取特定版本、分支或修订版的包。
- 例如:
go get foo@v1.2.3
、go get foo@latest
、go get foo@branch-name
。
随着 Go 语言的版本更新,go get
的功能在 Go 1.16 版本以后有所变化,逐渐转向主要用于旧的 GOPATH 模式下的包管理,而在模块模式下(即使用 go.mod
),更推荐使用 go install
来安装可执行文件。以下是 Go 1.16 之后,针对模块模式的 go get
行为:
- 在 Go 模块模式下,
go get
主要用于添加依赖到当前模块或更新模块和它们的依赖。 go install pkg@version
安装特定版本的可执行模块。