git - 如何修改和维护导入的 go 依赖?

标签 git go git-submodules go-modules

在我的 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/

相关文章:

Git 将子模块干净地 merge 到父树中并保留提交历史记录

git - 从 github 分支我自己的项目,然后将它推回 github,分支完好无损

go - 如何从 RPC 调用返回空字符串?

elasticsearch - 从 Golang 查询 ElasticSearch

html - Golang 保存到 json 文件

git - 在 bash 脚本中检测当前目录

git bitbucket私有(private)子模块ssh别名问题

git - 如何推/pull Git rebase

git - 使用 repo abandon 和 git branch -D 删除分支

git 克隆需要 ssh ://protocol when perhaps it shouldn't?