分叉项目的 Go 模块未检索到正确的存储库 version/code。什么是正确的解决方案?
Go modules of a forked projects not retrieving the correct repository version/code. What is the correct solution?
我正在使用 Golang 1.14 模块(在 ubuntu 18.04 下),我遇到了一个非常令人沮丧的话题,我希望在其中找到更好的解决方案。
描述
我有一个来自另一项伟大工作 (cron) 的 git repo forked。 cron 的所有者已经回复我说他喜欢我的想法,但不想将它合并到他的工作中。很好,所以我创建了自己的分叉,并打算作为分叉保留以参考原始作品。
在分叉他的工作并根据我的需要进行更改后,我将这个新模块(议程)用于我仍在开发中的辅助模块。
重要提示:不接受使用没有 fork 的新存储库,因为我没有正确地注明原始作品,也没有以常规方式从中获取更新
问题描述
当我在我的代码中简单地导入我的模块时,如
package main
import (
"fmt"
"github.com/Vinggui/agenda"
)
func main() {
agendaService := agenda.New(agenda.WithSeconds())
fmt.Print("Hi!\n")
agendaService=agendaService
}
Golang 子模块管理器做了 go get
和 returns 它的错误版本,实际上,返回的版本不是我的,它来自原始存储库,扰乱了我的编译。但是,当我手动执行
go get "github.com/Vinggui/agenda"
Golang 在我的存储库中获得了正确的版本!
我对此进行了很多搜索,在我看来,Golang 不会 "like" 分叉并搜索更有名的存储库。
临时解决方案
我目前找到的最佳解决方案是将以下代码设置到我的 go.mods
replace github.com/Vinggui/agenda => github.com/Vinggui/agenda v0.1.4
想要的结果
我希望我可以像导入任何其他模块一样导入我的分支并获得正确的版本。
"github.com/Vinggui/agenda"
有什么我可以做的更好的吗?为什么 Golang 会做它现在正在做的事情?
感谢您的回答。
虽然这个问题对某些人来说可能很简单,但 golang 代理实际上让我感到困惑。
当我开始我的 agenda fork 时,我可能弄乱了它的版本,我的 golang 版本低于 1.13。最近的版本将它们的默认代理设置为不同的值,我的代理存储库不再工作。
网上查了一下,了解到google go proxy是确定的,所以我现在唯一能想到的办法就是把我的版本更新到代理保存的版本中最新的。
无论如何,观察这个(对我来说是新的)代理默认参数及其功能对我有很大帮助。
再次感谢。
我正在使用 Golang 1.14 模块(在 ubuntu 18.04 下),我遇到了一个非常令人沮丧的话题,我希望在其中找到更好的解决方案。
描述
我有一个来自另一项伟大工作 (cron) 的 git repo forked。 cron 的所有者已经回复我说他喜欢我的想法,但不想将它合并到他的工作中。很好,所以我创建了自己的分叉,并打算作为分叉保留以参考原始作品。 在分叉他的工作并根据我的需要进行更改后,我将这个新模块(议程)用于我仍在开发中的辅助模块。
重要提示:不接受使用没有 fork 的新存储库,因为我没有正确地注明原始作品,也没有以常规方式从中获取更新
问题描述
当我在我的代码中简单地导入我的模块时,如
package main
import (
"fmt"
"github.com/Vinggui/agenda"
)
func main() {
agendaService := agenda.New(agenda.WithSeconds())
fmt.Print("Hi!\n")
agendaService=agendaService
}
Golang 子模块管理器做了 go get
和 returns 它的错误版本,实际上,返回的版本不是我的,它来自原始存储库,扰乱了我的编译。但是,当我手动执行
go get "github.com/Vinggui/agenda"
Golang 在我的存储库中获得了正确的版本!
我对此进行了很多搜索,在我看来,Golang 不会 "like" 分叉并搜索更有名的存储库。
临时解决方案
我目前找到的最佳解决方案是将以下代码设置到我的 go.mods
replace github.com/Vinggui/agenda => github.com/Vinggui/agenda v0.1.4
想要的结果
我希望我可以像导入任何其他模块一样导入我的分支并获得正确的版本。
"github.com/Vinggui/agenda"
有什么我可以做的更好的吗?为什么 Golang 会做它现在正在做的事情?
感谢您的回答。
虽然这个问题对某些人来说可能很简单,但 golang 代理实际上让我感到困惑。
当我开始我的 agenda fork 时,我可能弄乱了它的版本,我的 golang 版本低于 1.13。最近的版本将它们的默认代理设置为不同的值,我的代理存储库不再工作。
网上查了一下,了解到google go proxy是确定的,所以我现在唯一能想到的办法就是把我的版本更新到代理保存的版本中最新的。
无论如何,观察这个(对我来说是新的)代理默认参数及其功能对我有很大帮助。
再次感谢。