首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用提交散列时Go模块出现“未知版本”错误

使用提交散列时Go模块出现“未知版本”错误
EN

Stack Overflow用户
提问于 2019-08-09 02:15:41
回答 2查看 17.6K关注 0票数 4

我需要将this commit拉到我的go项目中。

我尝试过多个版本的go.mod

代码语言:javascript
复制
...

require (
    github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2

    // and...
    github.com/libp2p/go-libp2p-core v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825
)

...

这两种方法都会在运行$ go build时导致错误

代码语言:javascript
复制
$ go build
go: finding github.com/libp2p/go-libp2p-core v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825
go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2
go: github.com/libp2p/go-libp2p-core@v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825: unknown revision v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825
go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2
go: error loading module requirements

Go Go也不起作用:

代码语言:javascript
复制
$ go get github.com/libp2p/go-libp2p-core@aca080dccfc2c9933df66baafe6cf9cc4f429825
go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2                                                                                                    go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2
go: error loading module requirements

正如@JimB指出的那样,散列并没有被合并,而是被重新定位了。所以我试着用一个新的替换它,但它仍然在尝试获取旧的?

代码语言:javascript
复制
$ go get github.com/libp2p/go-libp2p-core@v0.2.1-0.20190802003216-436d707f7cd0
go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2
go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2
go: error loading module requirements
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-09 07:36:06

对于您最新的散列aca080dccfc2,该散列是否合并到了master,或者该散列对应于什么?从快速查看,aca080dccfc2似乎不在master上,但我不确定您对该提交的期望是什么。

对于模块允许使用的散列有一些限制,例如,来自#27043中的这个稍微老一点的注释

如果你查看ref /

/nnnnn或者其他任何引用,它就会出现在Git中,但不会出现在主分支和标签中。最近的变化将搜索范围缩小到了主分支和标签,这更合适。

尝试获取aca080dccfc2散列对我不起作用:

代码语言:javascript
复制
$ go get github.com/libp2p/go-libp2p-core@436d707f7cd0
go: finding github.com/libp2p/go-libp2p-core 436d707f7cd0
go get github.com/libp2p/go-libp2p-core@436d707f7cd0: 
 github.com/libp2p/go-libp2p-core@436d707f7cd0: invalid version: unknown revision 436d707f7cd0

另一方面,master上的最新提交对我来说是有效的:

代码语言:javascript
复制
$ go get github.com/libp2p/go-libp2p-core@d204016fc64589d0

(旁注:请注意,我只是在@之后使用了提交散列本身。这在pseudo-version出现问题的情况下很方便)。

你提到过:

它还在尝试获取旧的吗?

我不确定这是否是你的主要问题,但一般来说,如果你不确定一个版本是从哪里来的,一个好的起点通常是:

go mod graph | grep <module-of-interest>

或者在你的例子中:

go mod graph | grep go-libp2p-core

从文档中:

'go mod graph‘以文本形式打印模块需求图(已应用替换)。输出中的每一行都有两个空格分隔的字段:一个模块和它的一个需求。每个模块都被标识为形式为path@version的字符串,但main模块除外,它没有@version后缀。

在模块维基上的这个FAQ中,有一些更一般的故障排除提示,可以跟踪为什么使用特定的版本:

FAQ: What can I check if I am not seeing the expected version of a dependency?

也就是说,首先了解你所期望的提交可能会更有趣……

票数 6
EN

Stack Overflow用户

发布于 2021-04-29 03:10:18

你可以尝试这个小技巧来解决这个问题:

go.modgo.sum文件中删除github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2条目。

然后尝试go get "github.com/libp2p/go-libp2p-core@v0.2.1-0.20190802003216-436d707f7cd0"将下载指定的版本

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57418578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档