go get拉取GitHub私有仓库报could not read from remote repository问题咨询
问题根因
你观察到的URL中.com与company之间缺少冒号就是直接报错诱因。go get拉取模块时默认使用HTTPS协议请求GitHub资源,如果你配置了全局Git规则将GitHub的HTTPS请求替换为SSH协议,规则配置错误就会出现符号缺失的问题。你本地项目的remote配置是正确的,所以执行git push等操作不受影响,问题仅出在全局Git的URL替换规则上。
排查步骤
执行以下命令查看全局Git的URL替换规则:
git config --global --get-regexp url.*.insteadof
如果输出的配置中,git@github.com后缺少冒号,比如出现类似url.git@github.com.insteadof https://github.com/的结果,就可以确认是配置错误导致的URL拼接异常。
解决方法
- 先删除错误的替换规则,将下方命令中的
[错误的url值]替换为上一步查到的错误配置前缀:
git config --global --unset url."[错误的url值]".insteadOf
- 新增正确的SSH协议替换规则:
git config --global url."git@github.com:".insteadOf "https://github.com/"
- 配置Go的私有模块参数,避免Go尝试从公共代理拉取私有仓库资源:
go env -w GOPRIVATE=github.com/company/*
配置完成后重新执行go get github.com/company/code即可正常拉取。
内容的提问来源于stack exchange,提问作者Brent
相关产品推荐
相关产品推荐

