go get 快速入门(自用笔记)

总结

场景 Go 命令
新项目初始化 go mod init
安装依赖 go get
安装指定版本 go get xxx@vX
删除依赖 删 import + go mod tidy
老项目拉依赖 go mod tidy
只下载不编译 go mod download
查看依赖 go list -m all
清理依赖 go mod tidy
升级依赖 go get -u

一、初始化项目(= npm init)

  • 依赖官方文档索引:不是仓库,是"索引 + 文档站",自动收录所有 Go Module,方便 go get 使用

    总结:其实 Go 没有类似 npm 的插件仓库,是因为 GoGit 当成了插件仓库。

  • ✅ 新项目初始化

    csharp 复制代码
    go mod init myapp

    生成:

    go 复制代码
    go.mod

    必须在 项目根目录 执行

  • 对照

    语言 命令
    npm npm init
    pip pip init / poetry init
    Go go mod init

二、添加依赖(= npm install / pip install)

  • ✅ 推荐方式(最常用)

    arduino 复制代码
    import "github.com/gin-gonic/gin"
    go 复制代码
    go run main.go

    👉 Go 自动下载并写入 go.mod


  • ✅ 手动添加(指定包)

    arduino 复制代码
    go get github.com/gin-gonic/gin
  • ✅ 指定版本

    kotlin 复制代码
    go get github.com/gin-gonic/gin@v1.10.0
  • ✅ 升级到最新版本

    kotlin 复制代码
    go get github.com/gin-gonic/gin@latest

三、移除依赖(= npm uninstall)

  • ⚠️ Go 没有 go uninstall

  • 正确做法(两步)

  • 1️⃣ 删除 import

    arduino 复制代码
    // 删掉
    import "github.com/gin-gonic/gin"
  • 2️⃣ 清理无用依赖

    go 复制代码
    go mod tidy
  • 👉 Go 会:

    • 删除未使用依赖
    • 更新 go.mod
    • 清理 go.sum
  • 对照

    npm Go
    npm uninstall lodash 删除 import + go mod tidy

四、同步 / 拉起老项目(= npm install)

  • ✅ 克隆老项目后

    bash 复制代码
    git clone xxx
    cd project
  • 直接下载依赖

    go 复制代码
    go mod download

    或直接:

    arduino 复制代码
    go run .

    👉 自动按 go.mod 下载全部依赖

  • 🔥 推荐指令(最稳)

    go 复制代码
    go mod tidy

    它会:

    • 下载缺失依赖
    • 移除多余依赖
    • 保证 go.mod / go.sum 干净
  • 对照

    npm Go
    npm install go mod tidy

五、查看 / 管理依赖(实用)

  • 查看当前依赖

    css 复制代码
    go list -m all
  • 查看依赖树

    go 复制代码
    go mod graph
  • 为什么引入了这个包

    matlab 复制代码
    go mod why github.com/gin-gonic/gin

六、升级 / 降级 / 锁版本(进阶)

  • 升级全部依赖

    arduino 复制代码
    go get -u ./...
  • 只升级直接依赖

    arduino 复制代码
    go get -u
  • 降级到指定版本

    kotlin 复制代码
    go get github.com/gin-gonic/gin@v1.9.0
相关推荐
ArixBit20 小时前
用 Go 手撸 Agent 框架 #11:工具从哪里来——内置工具、MCP 与 Skills
go·agent
程序员爱钓鱼1 天前
为什么学习 Go?Go 能做什么?
后端·面试·go
用户095367515832 天前
在系统的学习 redis 前的疑惑
redis·go
名字还没想好☜2 天前
Go 用 errgroup 管理并发子任务:错误收敛、取消传播与限流
开发语言·后端·golang·go·并发
labixiong2 天前
TypeScript 7.0 编译器用 Go 重写,速度暴增10倍——背后到底做了什么?
前端·javascript·go
名字还没想好☜3 天前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器
ArixBit3 天前
用 Go 手撸 Agent 框架 #10:用自己的 Runtime,做一个研究助手
go·agent
cocoCola916674 天前
validator库参数校验若干实用技巧
go
不会C语言的男孩4 天前
第三章:流程控制
go
名字还没想好☜4 天前
Go 的 sync.Pool 实战:复用对象把 GC 压力打下来
开发语言·后端·性能优化·golang·go