一尘不染

深入了解库

go

我试图了解如何使用Golang和forks。情况如下,我在写一个project依赖于library的库github.com/other/some_dependency,这不是我的。

由于some_dependency缺少我需要的一些方法,因此将其分叉到github.com/me/some_dependency。但是,我不能只是这样做goget github.com/me/some_dependency,库引用了自己,所以它坏了。

本文中,他们提供了可能的解决方案:

 go get github.com/other/some_dependency
 cd $GOPATH/src/github.com/other/some_dependency
 git remote add fork git@github.com:me/some_dependency
 git rebase fork/master

现在,这充其量是hacky。从库代码中无法得知依赖项来自其他存储库。任何go get使用我的图书馆的人都无法使其正常运行。

由于dep有望成为正式的依赖管理器。我发现了如何修复版本:

dep ensure -add github.com/foo/bar@v1.0.0

但是我找不到如何设置其他遥控器。有可能做到吗?例如,在带有npm的Node.js中,它非常简单:

npm install git+https://git@github.com/visionmedia/express.git

阅读 201

收藏
2020-07-02

共1个答案

一尘不染

如果您查看,help则会看到以下内容:

<import path>[:alt source URL][@<constraint>]

因此,github.com/foo/bar要从位置添加,github.com/fork/bar您必须像这样添加它:

dep ensure -add github.com/foo/bar:github.com/fork/bar

源位置将作为source属性添加到中Gopkg.toml

Gopkg文档依赖关系规则约束和覆盖

2020-07-02