[英]How to get another branch instead of default branch with go get
我有2個存儲庫。 讓他們說repo_a和repo_b。 我在repo_b中導入了repo_a
當我跑去get時,它將獲得repo_a master分支。 有沒有辦法使用go get或repo_b中的其他命令來獲取開發分支?
我不想git pull每個特定的包(在這種情況下repo_a)
純粹的go get
是不可能的。
Go采用任何包管理器最簡單實用的方法。 沒有多個版本的Go包這樣的東西。
但這並不像第一種觀點那樣糟糕,因為這種行為背后存在一種哲學。
作為包裝作者,您必須遵守穩定的HEAD理念。 您的默認分支必須始終是包的穩定版本。 您必須在功能分支中工作,並且只有在准備發布時才合並。
這種方法go get
限制的限制,應該像Python縮進一樣對待 - 這是一種由語言設計強迫的哲學。
如果您想要分叉或嘗試新功能,您可以克隆repo然后切換到所需的分支並進行go build
。 這種方式不應該去生產。
git clone <repo name>
cd <repo name>
git checkout <branch name>
go build
您也可以使用第三方軟件包管理工具。 但是大多數都支持標簽和修訂,而不支持分支(因為暗示您不需要安裝功能分支)。
gpm :
您可以使用格式指定包,其中version可以是修訂號(git / bazaar / mercurial / svn修訂版哈希)或標記。
你可以使用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)
go get gopkg.in/pkg.v3
表示go get github.com/go-pkg/pkg
,但是分支或標記為v3.*
。
有關詳細信息,請參閱此處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.