我在 git 存儲庫中有一個 go/golang 項目的完整 src-tree。這樣我就可以輕松地將一個完整的項目及其依賴項克隆到另一臺計算機上。當使用 go get from eg, github.com 時,go 會在我的 src-tree 中克隆 github 項目。是否有一種簡單/標準的方法可以將這個內部 git repo 轉換為子模塊?類似的東西git submodule add <path>?還是我必須手動或自動找到內部存儲庫的 url 并使用 git submodule add <url> <path>不使用這種方法的任何論據?就我所見,優點是我可以完全控制源代碼的版本控制,輕松克隆包括依賴項在內的完整項目,使用 go get 更新我依賴/檢索的第三方代碼的簡便方法。結論 謝謝 Will C 和 VonC。我最終將供應商系統與工具 govendor 一起使用。我喜歡這個工具是因為它的透明性和簡單性——它從來都不是必需的工具。此外,Go vendoring 系統滿足了我的主要目標 - 輕松將我的完整項目及其依賴項克隆到不同的計算機。
2 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
我完全同意Will C的回答,但以防萬一您仍想將您的 github 存儲庫作為子模塊(在供應商子文件夾中)引用,這里是我為快速執行此操作而制作的腳本:
它會:
go get
內的 github 存儲庫vendor/src
(通過將 GOPATH 臨時重置為供應商)找出所有采用進口的回購協議
go get
(這意味著你的GitHub庫和它的依賴),使用go list -f
在供應商子文件夾中將這些存儲庫添加為主存儲庫的子模塊
清理(rm)
vendor/src
文件夾,該文件夾只是為了獲取存儲庫。
用法:
cd /path/to/your/repo
vendor github.com/jroimartin/gocui
這將創建:
/path/to/your/repo/vendor/github.com/jroimartin/gocui
/path/to/your/repo/vendor/github.com/<other/dependent/repos>
- 2 回答
- 0 關注
- 216 瀏覽
添加回答
舉報
0/150
提交
取消