如何配置go get命令使用HTTP协议而非HTTPS协议拉取私有代码
Go get通过HTTP拉取私有GitLab仓库的解决方法
确认环境变量配置
- 确保
GOPRIVATE精准指向私有仓库域名:export GOPRIVATE=gitlab.company.com - 若仓库使用HTTP协议或自签名HTTPS证书,必须设置
GOINSECURE:
注意:上述环境变量仅当前终端生效,要永久生效需写入对应shell配置文件(如Bash的export GOINSECURE=gitlab.company.com~/.bashrc、Zsh的~/.zshrc),之后执行source ~/.bashrc(对应你的配置文件)加载配置。
配置Git凭证与地址映射
Go get底层依赖Git拉取代码,需配置Git自动处理HTTP认证:
- 开启Git凭证存储,避免重复输入账号信息:
git config --global credential.helper store - 配置仓库地址映射,将普通HTTP地址替换为带认证信息的地址:
其中git config --global url."https://<用户名>:<个人访问令牌>@gitlab.company.com/".insteadOf "https://gitlab.company.com/"<个人访问令牌>需在GitLab后台生成,仅需勾选read_repository权限即可。
验证配置有效性
- 检查环境变量是否正确加载:
go env | grep -E "(GOPRIVATE|GOINSECURE)" - 尝试拉取私有仓库代码:
go get gitlab.company.com/[项目完整路径]
排查要点
- 若环境变量不生效,检查是否写入了正确的shell配置文件,且执行了
source命令刷新配置。 - 直接用浏览器访问仓库HTTP地址,确认地址可正常访问且当前账号有权限查看仓库内容。
内容的提问来源于stack exchange,提问作者moluzhui
相关产品推荐
相关产品推荐

