Go:如何从 sumsdb 中删除模块

Go: how to remove a module from sumsdb

我描述的有误here。不幸的是,该问题被错误地关闭为“重复”,并且提出的问题实际上 not 与 mime 相同。

让我用另一种方式重新表述我的问题:作为模块作者,我如何从 Go 的“sumsdb”中删除模块,以便可以修复所描述的错误。

下面粘贴了原始问题以供参考。


编辑:此问题已被版主关闭,但给定的 uri 未回答,这给出了不同的错误消息:

Why does go get fail with "invalid version: unknown revision"?

我将重新表述我的问题:

我从提交中删除了标记 v1.0.0,并标记了 另一个 提交。现在我发现存储库不再可用了。要验证:您可以执行以下操作:

  1. 克隆https://github.com/xrfang/hap
  2. cd进入example目录,然后运行go build .

这个问题不仅发生在我的 PC 上,也发生在任何试图使用上述 repo 的人身上。

我想知道这个问题是否会随着时间的推移而消失(因为缓存过期?)或者我必须做些什么?如果它会自愈,我想知道缓存有效时间是多长时间?如果没有,我想知道如何解决这个问题。我希望不要使用像 GOPRIVATE 这样的东西,因为这个 repo 将是 public(开源)。

原post:

我写了一个http参数解析工具,放在了github.com/xrfang/hap。 git 日志是:

* d8cee08 2022-02-14 | implemented http.Handler interface (HEAD -> master, tag: v1.0.0, origin/master, origin/HEAD) [xrfang]
* 171dc29 2022-02-10 | updated go.mod for example [xrfang]
* d2cea3c 2022-02-09 | added example [xrfang]
* 202d959 2022-02-09 | bug fix in error handling [xrfang]
* ... ...

问题是,我之前将提交 d2cea3c 标记为 v1.0.0。后来我发现它不是最优的,并添加了一些新代码。新代码 与 v1.0.0 兼容,因此我应该 将其设为 v2.0.0。但是,由于这个工具是新编写的,而且我是唯一的用户。我认为使它成为 v2.0.0 是愚蠢的。所以我刚刚删除了 v1.0.0 并将其重新标记为最新提交 d8cee08.

问题是,去投诉版本不“正版”。然后我删除了 go.sum,并做了 go clean -modcachego get -ugo mod tidy,但无济于事。最后一次尝试是:

$ go get -u
# example
./main.go:30:11: at.Init undefined (type apiTest has no field or method Init)
./main.go:39:2: undefined: hap.Register

我的问题是:

  1. Go 如何管理其存储库?我之前发现,在我更新我的模块并将其推送到 github 之后,该示例经常无法编译,除非我在 go.mod 中使用 replace,或者只是等待一段时间(例如30 分钟)。似乎有一个中央“查找 table”,它会定期更新,因此在模块更新时经常滞后?

  2. 如何解决我当前版本重新标记的问题?

  1. 您的理解是正确的,正如您链接的问题中所述。

  2. 或者

  • 发布 v2.0.0
  • 与 GOPRIVATE 一起生活
  • 发布 v1.1.0