跳到主要内容

go get 命令详解

· 阅读需 2 分钟
素明诚
Full stack development

常用命令

-d:下载模块到本地系统,但不安装。这通常用于仅下载源码而不进行编译的场景。

-u:更新已有的模块及其依赖到新版本。这包括直接依赖和间接依赖。

  • -u=patch:限制更新到补丁版本,即在主要和次要版本号不变的情况下更新到最新修订版。
  • -u=minor:更新到允许的最新次要版本,可能会包括主要版本号不变的新功能。

-t:除了获取包本身,还会获取包用于测试的依赖。

-insecure:允许使用不安全的协议,如 HTTP,进行网络操作。这在访问某些未使用 HTTPS 的私有仓库时可能需要,但通常不推荐因安全风险。

-v:显示详细的操作信息

版本控制参数

可以指定获取特定版本、分支或修订版的包。

  • 例如:go get foo@v1.2.3go get foo@latestgo 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 安装特定版本的可执行模块。