微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Go 中使用分叉包导入

如何解决在 Go 中使用分叉包导入

如果您使用的是go modules。你可以使用replace指令

replace指令允许您提供另一个导入路径,该路径可能是位于 VCS(GitHub 或其他地方)或具有相对或绝对文件路径的本地文件系统中的另一个模块。使用来自replace指令的新导入路径,无需更新实际源代码中的导入路径。

所以你可以在 go.mod 文件中执行以下操作

module github.com/yogeshlonkar/openapi-to-postman

go 1.12

require (
    github.com/someone/repo v1.20.0
)

replace github.com/someone/repo => github.com/you/repo v3.2.1

v3.2.1你的 repo 上的标签在哪里。也可以通过 CLI 完成

go mod edit -replace="github.com/someone/repo@v0.0.0=github.com/you/repo@v1.1.1"

解决方法

假设您有一个存储库,github.com/someone/repo并且您将其分叉到github.com/you/repo. 你想使用你的叉子而不是主仓库,所以你做了一个

go get github.com/you/repo

现在这个 repo 中的所有导入路径都将被“破坏”,这意味着,如果存储库中有多个包通过绝对 URL 相互引用,它们将引用源,而不是分支。

有没有更好的方法将其手动克隆到正确的路径中?

git clone git@github.com:you/repo.git $GOPATH/src/github.com/someone/repo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。