如何设置GOPRIVATE环境变量

如何设置GOPRIVATE环境变量,go,environment-variables,go-modules,Go,Environment Variables,Go Modules,我开始从事一个Go项目,它使用Github private repos中的一些私有模块,每当我尝试运行Go-run main时,它都会给我一个如下410 Go错误: 正在验证github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:读数:410消失 我可以很容易地从终端克隆私有repo,这意味着我的ssh密钥配置正确。我读到我需要设

我开始从事一个
Go
项目,它使用Github private repos中的一些私有模块,每当我尝试运行
Go-run main时,它都会给我一个如下
410 Go
错误:

正在验证github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:读数:410消失

我可以很容易地从终端克隆私有repo,这意味着我的
ssh
密钥配置正确。我读到我需要设置
GOPRIVATE
环境变量,但我不知道该怎么做

有人能回答或指向相关教程吗

Go:v1.13,OS:macOS Mojave

简短回答:
go-env-w GOPRIVATE=github.com/repoURL/private-repo

如果您希望允许组织的所有私人回购

go env-w GOPRIVATE=github.com//*

长答覆: 查看更多信息:

GOPRIVATE环境变量控制go命令认为私有(不公开)的模块,因此不应使用代理或校验和数据库。变量是以逗号分隔的模块路径前缀的全局模式列表(语法为Go的path.Match)。比如说,

 GOPRIVATE=*.corp.example.com,rsc.io/private
使go命令将路径前缀与任一模式匹配的任何模块(包括git.corp.example.com/xyzzy、rsc.io/private和rsc.io/private/qux)视为专用模块

“go env-w”命令(请参阅“go help env”)可用于为将来的go命令调用设置这些变量


关于ssh使用的注意事项: 如果使用ssh访问git repo(本地托管),则可能需要将以下内容添加到
~/.gitconfig

[url”ssh://git@git.local.intranet/“]
代替=https://git.local.intranet/

对于能够访问git服务器的
go
命令。

这是ssh使用的后续说明,以下是用于使其工作的命令:

GitHub:

git config --global url."git@github.com:".insteadOf "https://github.com/"
比特桶:

git config --global url."git@bitbucket.org:".insteadOf "https://bitbucket.org/"

man$(basename$SHELL)
有一个围棋帮助:
go-help-module-private
或者只是为了让生活更简单,
export-GOPRIVATE=*
这是一个很好的问题。谢谢!现在正在工作,所以诀窍是使用带有组织名称的通配符url
go env-w GOPRIVATE=github.com/{OrgNameHere}/*
对于主要使用私有代码进行编码的人来说可能更容易使用
export GOPRIVATE=*
使用
export GOPRIVATE=*
将当前目录中的所有文件名分配给GOPRIVATE,这不是您想要的。这是一个很好的答案。谢谢你的回答。我喜欢这个答案,即使是现在,我仍然喜欢这个答案,并且可能会在很长一段时间内继续喜欢它。也许几年吧。