# go get

go get 是 Go 编程语言中用于获取和安装外部包的命令

  1. 获取并安装外部包
    • 可以通过 go get [包路径] 的命令下载指定的 Go 包并安装到当前工作环境中。例如 go get github.com/gin-gonic/gin 会下载并安装 Gin web 框架。
  2. 更新已安装的包
    • 使用 go get -u [包路径] 可以更新已安装的包到最新版本。
  3. 获取指定版本的包
    • go get [包路径]@[版本号] 可以获取指定版本的包。例如 go get github.com/gin-gonic/gin@v1.7.7 会安装 Gin v1.7.7 版本。
  4. 获取开发版本的包
    • go get [包路径]@master 可以获取指定包的开发版本 (master 分支)。
  5. 删除已安装的包
    • 虽然 go get 没有直接删除包的命令,但可以通过 go clean -i [包路径] 来删除已安装的包。
  6. 支持代理和私有仓库
    • go get 支持通过 GOPROXY 代理和私有 Git 仓库来获取外部包。

# go mod

go mod 是 Go 1.11 版本引入的新的依赖管理工具,它用于管理 Go 项目的依赖包。相比之前的 go get 命令, go mod 提供了更强大和灵活的依赖管理功能

  1. 初始化模块
    • go mod init [module-path] 用于在当前目录下初始化一个 Go 模块,并创建 go.mod 文件。
  2. 添加依赖
    • go get [package] 会自动添加指定的依赖包到 go.mod 文件中。
    • go mod tidy 会分析当前项目的依赖,添加缺失的依赖,并移除无用的依赖。
  3. 升级依赖
    • go get -u [package] 可以升级指定的依赖包到最新版本。
    • go get -u=patch [package] 可以升级指定的依赖包到最新的补丁版本。
  4. 降级依赖
    • go get [package]@[version] 可以指定降级到某个具体版本。
  5. 剔除依赖
    • go mod tidy 会移除项目中没有被使用的依赖包。
    • go mod edit -droprequire=[package] 可以手动删除某个依赖。
  6. 查看依赖图
    • go mod graph 可以查看项目的依赖图谱。
    • go mod why [package] 可以查看某个依赖为何会被引入。
  7. vendor 依赖
    • go mod vendor 可以将项目的所有依赖复制到 vendor 目录下。
    • go build -o app -mod=vendor 可以使用 vendor 目录下的依赖进行构建。

# go get -u [package]go get -u=patch [package] 之间的区别

  1. go get -u [package] :
    • 这个命令会将指定的依赖包升级到最新版本,不管是大版本、小版本还是补丁版本。
    • 例如原先依赖的包是 v1.2.3, 执行 go get -u github.com/example/package 后会升级到最新的版本,可能是 v2.0.0 或 v1.3.0 等。
  2. go get -u=patch [package] :
    • 这个命令会将指定的依赖包升级到最新的补丁版本。
    • 例如原先依赖的包是 v1.2.3, 执行 go get -u=patch github.com/example/package 后只会升级到 v1.2.4, 不会升级到大版本或小版本的新版本。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

colagold 微信支付

微信支付

colagold 支付宝

支付宝