git - 分支项目的 Go 模块未检索到正确的存储库版本/代码。什么是正确的解决方案?

标签 git go module fork

我正在使用 Golang 1.14 模块 (在 ubuntu 18.04 下)我遇到了一个非常令人沮丧的话题,我希望在其中找到更好的解决方案。

描述

我有一个 git repo forked来自另一项伟大的工作(cron)。 cron 的所有者已经回复我说他喜欢我的想法,但不想将其 merge 到他的工作中。好的,所以我创建了自己的 fork 并打算保留作为 fork 以引用原始作品。
在 fork 他的工作并改变我的需求之后,我将这个新模块(议程)用于我仍在开发的辅助模块中。

重要提示:不接受使用没有 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并返回错误的版本,实际上,返回的版本不是我的,它来自原始存储库,弄乱了我的编译。但是,当我手动执行
go get "github.com/Vinggui/agenda"

Golang 在我的存储库中获得了正确的版本!

我对此进行了很多搜索,在我看来,Golang 不“喜欢” fork 并搜索更知名的存储库。

临时解决方案

我现在找到的最佳解决方案是将以下代码设置到我的 go.mods
replace github.com/Vinggui/agenda => github.com/Vinggui/agenda v0.1.4

期望的结果

我希望我可以像任何其他模块一样导入我的 fork 并获得正确的版本。
"github.com/Vinggui/agenda"

有什么更好的我可以做的吗?为什么 Golang 做它现在正在做的事情?

最佳答案

感谢您的回答。

尽管这个问题对某些人来说可能很简单,但 golang 代理实际上让我感到困惑。

当我开始我的议程分支时,我可能搞砸了它的版本,我的 golang 版本低于 1.13 .最近的版本将其默认代理设置为不同的值,我的代理存储库不再起作用。

在线搜索,我了解到 google go 代理是确定的,所以我现在唯一能想到的方法就是将我的版本实际更新为代理保存的版本中的最新版本。

无论如何,观察这个(对我来说是新的)代理默认参数及其功能对我有很大帮助。

再次感谢。

关于git - 分支项目的 Go 模块未检索到正确的存储库版本/代码。什么是正确的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61239056/

相关文章:

debugging - 如何在VSCode中调试AWS SAM制作的应用程序?

git - 为什么git clone git ://is not working

git - 如何在不提交 WP 核心的情况下使用 Git 部署 WordPress 站点?

go - 无法加载包 : github. com/dmgk/faker 期望导入 "syreclabs.com/go/faker"

python - 尝试升级 pip,但出现错误 'WinError 5'

module - 如何将我的程序划分为模块?

node.js - 通用术语的上下文

git - Smartgit - 无法 pull 、推送和同步存储库和文件

git - 删除分支后,VSTS 会保留多长时间?

go - 洛格鲁斯 : How to print con console log