我在计算机A上开发了一个存储库,并创建了一个我签入的go.mod / go.sum。
我使用计算机B上的go.mod / go.sum文件提取该存储库,但是当我尝试构建程序时,无法满足模块约束条件。
$ go build
go: finding github.ibm.com/kms/key-protect-client v0.1.5
go: finding golang.org/x/tools v0.0.0-20180221164845-07fd8470d635
go: github.ibm.com/kms/key-protect-client@v0.1.5: unknown revision v0.1.5
go: error loading module requirements
失败的存储库是私有存储库,由于某种原因,它没有下载到模块缓存中。在另一台计算机上,将下载依赖项,并且构建成功。我正在同一域中构建另一个私有存储库,因此我知道我的github凭据使我可以访问这些存储库。但是由于某些原因,go模块系统无法到达相关的仓库。
我找不到更多信息来调试它。
答案 0 :(得分:14)
如果使用私有存储库,则可能会出现golang未知版本的解决方案:
git config --global url."ssh://git@yourserver".insteadOf "https://yourserver"
检查您的git存储库权限
答案 1 :(得分:1)
我遇到了同样的问题,请访问 the link。
确保你已经设置了 GO111MODULES
go env -w GO111MODULE=on
确保您的 git 配置适用于私有仓库
git config --global url."ssh://git@github.com:acme-corporation".insteadOf "https://github.com/acme-corporation"
如果使用 2FA,请确保创建个人访问令牌
git config --global url."https://:x-oauth-basic@github.com:acme-corporation".insteadOf "https://github.com/acme-corporation"
在我的情况下设置后:
我必须对 ~/.netrc 文件做同样的事情:
machine gitlab.url.com
login <gitlab username>
password <GITLAB_TOKEN>
答案 2 :(得分:0)
问题与cmd / go不了解git身份有关,并且假设.gitconfig文件中仅阐明了一个相关性。
解决方法:当您需要使用一组git身份来替换全局.gitconfig时,准备使用该git身份,并且正在使用可更新模块文件的cmd / go工具。
答案 3 :(得分:0)
以防万一
“错误”:“未知版本...”
或
“错误”:“版本无效...”
确保您未指定 PR的哈希(拉请求)。甚至合并的PR也可能是错误的。
在github存储库中查找提交哈希
在AttributeError
下,但不在/commits
下。
在此处查看更多信息:golang/go#31191明确过滤掉此类提交。
答案 4 :(得分:0)
与上面的一些评论一致-我遇到了这个问题,因为由于更新到Mojave而使我的git炸掉了……这里的高度评价(xcode-select --install
)使我越过了此错误消息{{3} }
如果遇到此问题,请确保您的go status
等正在按预期运行。
答案 5 :(得分:0)
以防万一,您是否在计算机B上将"github.ibm.com/kms"
添加到了环境变量GOPRIVATE
中?正是由于这个原因,我发生了这个错误。