【发布时间】:2025-12-04 17:05:02
【问题描述】:
假设您有一个位于 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
【问题讨论】:
-
No 新分叉中的导入路径将被破坏,在分叉之前尚未破坏。
-
很抱歉让您失望了,但事实并非如此。如果通过绝对 url 在导入中引用子包,则此导入将在 fork 中中断(或至少引用错误的包)。
-
例如goamz。它到处都有内部引用。
-
查看
ec2包 - 它有一个launchpad.net/goamz/aws导入。aws和ec2包都位于相同的存储库中,因此在分叉时,不会引用正确的包(分叉中的那个)。 -
fork 将引用与 fork 源相同的包。那有什么不正确的? fork 会编译,它会构建,它会做和以前一样的事情。那么“错误包装”的定义是什么?请注意,Go 语言,以及它的构建系统,没有知道存储库,只有包。
标签: go