我有2个存储库.让他们说repo_a和repo_b.我在repo_b中导入了repo_a
当我跑去get时,它将获得repo_a master分支.是否有任何方法可以使用go get或repo_b中的其他命令来获取开发分支?
我不想git pull每个特定的包(在这种情况下repo_a)
hel*_*ert 17
从Go 1.11开始,使用Go modules可以做到这一点。在为Go模块安装依赖项时,您可以指定一个模块查询,其中可能包含分支或标记名称:
$ go get <path-to-repo>@<branch>
Run Code Online (Sandbox Code Playgroud)
I15*_*159 16
纯粹是不可能的go get.
Go采用任何包管理器最简单实用的方法.没有多个版本的Go包这样的东西.
但这并不像第一种观点那样糟糕,因为这种行为背后存在一种哲学.
作为包装作者,您必须遵守稳定的HEAD理念.您的默认分支必须始终是包的稳定版本.您必须在功能分支中工作,并且只有在准备发布时才合并.
这种方法受到go get限制,它应该被视为Python缩进 - 它是一种由语言设计强迫的哲学.
如果你想分叉或尝试新功能,你可以克隆回购然后切换到所需的分支,然后做go build.这种方式不应该去生产.
git clone <repo name>
cd <repo name>
git checkout <branch name>
go build
Run Code Online (Sandbox Code Playgroud)
您也可以使用第三方软件包管理工具.但是大多数都支持标签和修订,而不支持分支(因为暗示您不需要安装功能分支).
gpm:
您可以使用格式指定包,其中version可以是修订号(git/bazaar/mercurial/svn修订版哈希)或标记.
zzn*_*zzn 11
你可以使用gopkg.in它,它将重定向到github.
支持两种URL模式:
gopkg.in/pkg.v3 ? github.com/go-pkg/pkg (branch/tag v3, v3.N, or v3.N.M)
gopkg.in/user/pkg.v3 ? github.com/user/pkg (branch/tag v3, v3.N, or v3.N.M)
Run Code Online (Sandbox Code Playgroud)
go get gopkg.in/pkg.v3意思是go get github.com/go-pkg/pkg,但是是分支或标签v3.*.
有关详细信息,请参阅此处
| 归档时间: |
|
| 查看次数: |
19579 次 |
| 最近记录: |