在我的 go app(parent) 中,我通过 go get 导入了一个 go library(child) 并将其复制到父目录。为了我的使用,我在“child”中进行了一些修改以扩展某些功能。我使用 go 模块并在 go.mod 中使用“替换”来指向本地子路径(具有扩展功能)而不是全局 $GOPATH。
我很困惑如何在保持我的扩展功能的同时,不断地让 child 与其上游仓库保持同步。
//App directory
Parent.go
--Child/ (copied from $GOPATH)
go.mod
//go.mod
replace github.com/xyz/child => ./Child
将 child 设置为 git-submodule 在我的系统中运行良好。但是,当从另一个系统中提取 repo 时, child 会从
$GOPATH
中获取它的 go 依赖项。从过去的版本,并没有映射到正确的版本。我试图设置 git-submodule 和 go-module 以在任何环境中无缝地为我的应用程序工作。我正在尝试解决这个问题一个多星期。请帮忙。
最佳答案
如果我理解正确,您应该 fork 存储库,更改导入路径,使其与上游保持更新并使用它。
另一种选择是为第三方库做出贡献。replace
指令更多不是用于长期使用,而是用于调试和非标准情况。
关于git - 如何修改和维护导入的 go 依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235029/