登录
首页 >  Golang >  Go问答

在 Go 中使用分叉包导入

来源:Golang技术栈

时间:2023-03-08 20:06:57 273浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《在 Go 中使用分叉包导入》,就很适合你!文章讲解的知识点主要包括golang,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

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

go get github.com/you/repo

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

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

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

正确答案

如果您使用的是go modules。你可以使用[replace](https://github.com/golang/go/wiki/Modules#when- should-i-use-the-replace-directive)指令

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您的仓库中的标签在哪里。也可以通过 CLI 完成

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

今天带大家了解了golang的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表