簡體   English   中英

如何使用go get獲取另一個分支而不是默認分支

[英]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)

穩定的HEAD理念

純粹的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.*

有關詳細信息,請參閱此處

從Go 1.11開始,這可以在使用Go模塊時實現 在為Go模塊安裝依賴項時,您可以指定可能包含分支或標記名稱的模塊查詢

$ go get <path-to-repo>@<branch>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM