我看到在 Go 中您可以直接从 Github 导入包,例如:
import "github.com/MakeNowJust/heredoc"
我知道我在导入行中看到的路径不是 URL,而只是包所在的路径(通常相对于 $GOROOT/src/pkg 或 $GOPATH/src)。所以 heredoc 包很可能位于 $GOPATH/src/github.com/MakeNowJust/heredoc 目录中。
现在假设包开发人员决定将代码库迁移到 Bitbucket。所以现在库 URL 是 bitbucket.com/muchMoreCoolerName/heredoc
。他还在代码库中添加了一些新功能。
我的问题是您将如何获得更新后的代码?
我能想到的唯一解决方案是将所有导入更改为新 URL 并再次执行 go get
。但是改库更新的代码好像有点不方便。
最佳答案
如果你只是使用 go get 然后导入,没有办法绕过它,你将不得不更新导入路径以获取新代码。但是,如果您使用 vendoring (一种保持对代码的依赖性并与它们一起分发的技术)至少在更新之前,您将与该移动隔离开来。当您想要更新时,您可以使用 vendor 功能来保留旧的导入路径,但与其他存储库同步。
坦率地说,无论如何我仍然会使用 vendoring,当我决定更新时,只需搜索并替换旧的导入路径,这并不难。
编辑 您也可以使用 dep如果您还没有转换到模块,则管理依赖项。
关于go - 如何在更改位置时更新导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224115/