我在 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 关注
- 168 浏览
添加回答
举报
0/150
提交
取消