在 Linux 下配置 Go 私有仓库(私库),通常分几种场景:
下面按最常见、最推荐的方式讲。
建议使用 Go 1.13+(私库支持更完善)
go version
go env -w GO111MODULE=on
假设你的私库地址是:
git.company.com/mygroup/myproject
go env -w GOPRIVATE="git.company.com/*"
✅ 效果:
proxy.golang.orgsum.golang.org如果有多个:
go env -w GOPRIVATE="git.company.com/*,github.com/yourorg/*"
Go 拉私库本质是 git clone
ssh-keygen -t ed25519 -C "you@company.com"
~/.gitconfig[url "git@git.company.com:"]
insteadOf = https://git.company.com/
这样 Go 会自动用 SSH 拉代码。
git config --global credential.helper store
用户名
Token(不是密码)
go env -w GOPRIVATE="git.company.com/*"
git config --global url."https://username:token@git.company.com/".insteadOf "https://git.company.com/"
go env -w GOPROXY="https://proxy.golang.org,direct"
go env -w GONOPROXY="git.company.com/*"
import "git.company.com/mygroup/myproject"
go mod tidy
go env -w GOFLAGS=-mod=mod
go env | grep GOPRIVATE
| 场景 | 方案 |
|---|---|
| 内网 Git | SSH + GOPRIVATE |
| 云私库 | HTTPS Token |
| 多仓库 | GOPRIVATE 通配 |
| 高安全 | GONOSUMDB |
如果你愿意,可以告诉我:
我可以给你一套 可直接复制的配置文件。