Git 如何修改和维护导入的go依赖项?

Git 如何修改和维护导入的go依赖项?,git,go,git-submodules,go-modules,Git,Go,Git Submodules,Go Modules,在我的go应用程序(父目录)中,我通过go get导入go库(子目录),并将其复制到父目录。为了便于使用,我在“child”中做了一些修改,以扩展某些特性。我使用go模块并在go.mod中使用“replace”来指向本地子级(具有扩展功能)路径,而不是全局$GOPATH 我不知道如何在保留我的扩展功能的同时,不断地让孩子与上游回购保持同步 //App directory Parent.go --Child/ (copied from $GOPATH) go.mod //go.mod r

在我的go应用程序(父目录)中,我通过go get导入go库(子目录),并将其复制到父目录。为了便于使用,我在“child”中做了一些修改,以扩展某些特性。我使用go模块并在go.mod中使用“replace”来指向本地子级(具有扩展功能)路径,而不是全局$GOPATH

我不知道如何在保留我的扩展功能的同时,不断地让孩子与上游回购保持同步

//App directory    
Parent.go
--Child/ (copied from $GOPATH)
go.mod

//go.mod
replace github.com/xyz/child => ./Child
将子模块设置为git子模块在我的系统中运行良好。但是,当从另一个系统提取回购协议时,子系统会从过去版本的
$GOPATH
中提取它的go依赖项,并且不会映射到正确的版本


我正在尝试设置git子模块和go模块,以便在任何环境中无缝地为我的应用程序工作。我试图解决这个问题已经一个多星期了。请帮助。

如果我理解正确,您应该分叉回购协议,更改导入路径,保持上游更新并使用它

另一种选择是向第三方库捐款

replace
指令不是用于长期使用,而是用于调试和非标准情况