导入包的本地更改而不在Golang中推送代码

时间:2016-08-29 21:40:24

标签: go import package vendor

我'我正在学习现在的Golang和新手。我对包裹有疑问。

考虑以下情况:

想象一下,我有一个包github.com/ilatif/A,我在其中我正在导入另一个包github.com/ilatif/B,例如:

import "github.com/ilatif/B"

现在既然github.com/ilatif/Agithub.com/ilatif/B都是我的套餐,我就是'我在本地工作,有没有办法从github.com/ilatif/B包中提取更改而不将代码推送到GitHub?根据Golang的文档,我需要将代码推送到相关的repo,但我想知道是否有这样的方法来拉取我自己的包的本地更改而不首先将其推送到上游。

由于

1 个答案:

答案 0 :(得分:5)

Go模块解决方案

我可以通过在文件go.mod中使用replace来将Golang与模块一起成功使用。

https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/

  • 使用go.mod语句保存replace文件后,Goland就会识别出更新的模块。

示例

  • 使用replace MODULE_URL => /PATH/TO/MODULE/DIR
    • 无需指定版本
module github.x.com/services-x/x

go 1.13

require (
    github.com/briandowns/spinner v1.8.0
    github.com/golang/protobuf v1.3.1
    github.com/jinzhu/copier v0.0.0-20190625015134-976e0346caa8
    github.com/marcellodesales/cloner v0.0.0-20191126082454-c952bef1e067
    github.com/mitchellh/go-homedir v1.1.0
    github.com/mitchellh/mapstructure v1.1.2
    github.com/sirupsen/logrus v1.2.0
    github.com/spf13/cobra v0.0.5
    github.com/spf13/viper v1.4.0
    github.com/thoas/go-funk v0.4.0
    gopkg.in/src-d/go-git.v4 v4.13.1
    gopkg.in/yaml.v2 v2.2.2
)

replace github.com/marcellodesales/cloner => /Users/mdesales/dev/github.com/marcellodesales/cloner