问题描述
如果您使用的是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