我需要将this commit拉到我的go项目中。
我尝试过多个版本的go.mod
...
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时导致错误
$ 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 requirementsGo Go也不起作用:
$ 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指出的那样,散列并没有被合并,而是被重新定位了。所以我试着用一个新的替换它,但它仍然在尝试获取旧的?
$ 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发布于 2019-08-09 07:36:06
对于您最新的散列aca080dccfc2,该散列是否合并到了master,或者该散列对应于什么?从快速查看,aca080dccfc2似乎不在master上,但我不确定您对该提交的期望是什么。
对于模块允许使用的散列有一些限制,例如,来自#27043中的这个稍微老一点的注释
如果你查看ref /
/nnnnn或者其他任何引用,它就会出现在Git中,但不会出现在主分支和标签中。最近的变化将搜索范围缩小到了主分支和标签,这更合适。
尝试获取aca080dccfc2散列对我不起作用:
$ 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上的最新提交对我来说是有效的:
$ 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?
也就是说,首先了解你所期望的提交可能会更有趣……
发布于 2021-04-29 03:10:18
你可以尝试这个小技巧来解决这个问题:
从go.mod和go.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"将下载指定的版本
https://stackoverflow.com/questions/57418578
复制相似问题