我正在使用框架包 (github.com/username/fmk),并且遇到使用 go get 进行版本解析的问题。
当前发布流程:
问题: 我正在尝试使用 go get 从功能分支安装特定提交。这是我使用的命令:
go get github.com/username/fmk@066bca62e82a
但是, go get 会尝试安装该软件包的 v1.30.1 版本。根据存储库中的标签,该版本似乎不存在。当我检查 v1.30.0 被标记时的提交时,我发现了从 main 到development的合并。我猜这与回退到 v1.30.0 的下一个版本有关。但我不确定。
预期行为: 我期望 go get 下载并安装与提交哈希(066bca62e82a)相对应的包。在最新版本标签之上,即 v1.44.2。
我尝试过的事情:
尝试强制使用带有时间戳的版本:
> go get -d github.com/username/[email protected]
go: github.com/username/[email protected]: invalid pseudo-version: revision 066bca62e82a is not a descendent of preceding tag (v1.44.1)
尝试删除(@none)软件包并再次安装:
> go get -d github.com/username/fmk@none
> go get -d github.com/username/fmk@066bca62e82a
#response:
go: downloading github.com/username/fmk v1.30.1-0.20240423064250-066bca62e82a
go: github.com/username/fmk@066bca62e82a: github.com/username/[email protected]: verifying module: github.com/username/[email protected]: reading https://sum.golang.org/lookup/github.com/username/[email protected]: 404 Not Found
server response:
not found: github.com/username/[email protected]: invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/6ad280b7d82bf06e4410b8adbf3bd0e2922d5dc1e17a71a955f977917d4be5da: exit status 128:
fatal: could not read Username for 'https://github.com': terminal prompts disabled
Confirm the import path was entered correctly.
If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.
问题:
go get example.com/theirmodule@4cf76c2
应该可以工作。
我们来试试:
> go get go.uber.org/goleak@7f1444f
go: added go.uber.org/goleak v1.3.1-0.20240605195212-7f1444f09263
> fgrep go.uber.org/goleak go.mod
go.uber.org/goleak v1.3.1-0.20240605195212-7f1444f09263 // indirect
您在这里看到的
v1.3.1
是伪版本的一部分,它是“基本版本前缀(vX.0.0或vX.Y.Z-0),它源自语义版本标签早于修订版 或 vX.0.0 ”。
对我来说看起来不错,并且有详细的记录。您的情况是这样吗?