假设您有一个github.com/someone/repo的存储库,您将其派生到github.com/you/repo.您希望使用fork 而不是主回购,因此您可以执行

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指令

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"

Go相关问答推荐

Term~T中的类型不能是类型参数,但可以是引用类型参数的切片

由于索引器压缩比限制,扫描包含golang包的图像时,伪影XRAY失败

有没有办法通过Go cmdline或IDE(IntelliJ)找出我的 struct 实现了什么接口?

如何在GoFr中为生产和本地环境设置不同的配置?

允许在 struct 中使用复合作为函数参数

无法使用exec从管道中读取.Go中的命令

当我有外键时,如何使用 GORM 创建数据库的新条目

「GORM错误」不支持的数据类型:&[],不正确的模式

下载和合并时输出文件已损坏

替换字符串中的最后一个字符

泛型:实现嵌套接口

如何将元素从一个切片移动到另一个切片

go-echo中如何防止+转义

Protobuf.Any - 从 json.RawMessage 解组

从动态输入中提取字符串,其中部分字符串可能不存在

在我的情况下,如何以正确的方式测试方法?

如何在 golang 中同时加载 .env 文件和 os 环境变量

Go 加密库创建的 PKCS1 公钥与openssl rsa ...之间的区别

go mod tidy 错误消息:但是 go 1.16 会 Select

不理解切片和指针