Golang Go语言中关于 go get 命令的问题

发布于 1周前 作者 songsunli 来自 Go语言

Golang Go语言中关于 go get 命令的问题

如果 我就写这么一句:

go get github.com/xx/xxx

他下载的是哪个分支,哪个 tag ?

如果想下载 指定的 tag ,应该怎么写?

8 回复

默认应该是最新的 tag 、默认分支。指定的话 go get <path-to-repo>@<branch>
branch 也可以是 hash

更多关于Golang Go语言中关于 go get 命令的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


可以看下 go help get
go get example.com/pkg 是最新版本
go get example.com/[email protected] 指定版本




好的,非常感谢

最新版本不是不建议使用 go get 用 Go install 吗

对滴,官方是这么建议的,不过一般用 ide 自动下载包,就不考虑这么多了

因为 Go Modules versions ,go module 可不是默认最新版本哦! 默认 github.com/xx/v0 或者 github.com/xx/v1 , 然后会自动选择没有 module 里最后一个版本。

import github.com/xx/ , 很多 lib 会出现上述情况。 libs 后加入 go modules 支持的,不再叫 github.com/xx/了,github.com/xx/vX ( v[版本号])

关于Golang中go get命令的问题,这是一个非常核心且常用的工具,用于从远程仓库下载、安装、更新和构建Go模块和包。以下是一些关于go get命令的要点和常见用法:

  1. 基本用法

    • go get <package>:下载并安装指定的包及其依赖。
    • go get -u <package>:更新指定的包及其依赖到最新版本。
    • go get -d <package>:只下载指定的包,不安装(即不构建和运行)。
  2. 指定版本

    • go get <package>@<version>:下载并安装指定版本的包。例如,go get github.com/user/repo@v1.2.3
  3. 私有仓库

    • 对于私有Git仓库,go get可能需要身份验证。可以通过设置GIT_ASKPASS环境变量或使用SSH密钥进行认证。
  4. 模块模式

    • 在Go模块模式下(即项目根目录有go.mod文件),go get会更新go.modgo.sum文件,记录依赖关系。
  5. 代理

    • 可以通过设置GOPROXY环境变量来配置模块下载的代理服务器,以加速下载或访问私有仓库。
  6. 注意事项

    • 使用go get时,确保Go语言环境已正确配置,包括GOPATHGOROOT
    • 在处理依赖时,注意版本兼容性,避免引入不兼容的更新。

希望这些信息能帮助你更好地理解和使用go get命令。如果有更具体的问题或场景,欢迎继续提问!

回到顶部