
要下班了,摸一会儿鱼。
想到一个问题就是如果把 vendor 目录纳入 git 管理,但是如果在 windows 下和 linux 下同时进行开发,用的 go sdk 都是不一样的,go mod vendor 好像就有问题。
1 mooyo 2025 年 3 月 4 日 五年前就不用 vendor 了吧,老项目吗? |
2 Cannian 2025 年 3 月 4 日 现在都用 mod 了,老项目才用 vendor |
3 Nazz 2025 年 3 月 4 日 我现在用 go mod tidy 了, 以前喜欢 vendor |
5 lasuar 2025 年 3 月 4 日 只有当你用到了那种私有库、临时库,担心引用的库未来可能消失 的时候才会用 vendor 。不过开发时也不好用,比如下载了新库时,直接在 IDE 中输入是不能自动识别的(纯 mod 模式就可以)。现在我都不用 vendor 了,如果有那种比较重要的库,干脆直接 down 下来放本地的 internal pkg 。 |
6 Cheivin 2025 年 3 月 4 日 如果你用私有库还要把代码跟项目 git 一起,用 go mod 然后 repace 路径吧 |
8 Trim21 2025 年 3 月 4 日 > 但是如果在 windows 下和 linux 下同时进行开发,用的 go sdk 都是不一样的,go mod vendor 好像就有问题 会有啥问题? go mod vendor 会选择只 vendor _linux 文件或者 _windows 文件然后忽略另一个吗? |
9 icy37785 2025 年 3 月 4 日 via iPhone vendor 是坏文明,vendor 的正确使用姿势就是不用。 |
10 sardina 2025 年 3 月 4 日 https://github.com/goproxy/goproxy 内网搭建一个 goproxy |
11 stormtrooperx5 2025 年 3 月 4 日 咋这么多人不用 vendor ?镜像打包速度快很多啊 |
12 iyaozhen 2025 年 3 月 4 日 99%场景不需要 go mod vendor 现在唯一用 vendor 的地方,是要打 go 插件,而且也不把 vendor 提交到 git ,而是 CI 环境固定 go 版本(宿主要和插件一模一样版本号),执行 go mod vendor 后再 build |
13 HappyAndSmile 2025 年 3 月 5 日 @stormtrooperx5 自己搭一个 go mod proxy ,为什么会需要 vendor ?为什么会慢? |
15 arcfya 2025 年 3 月 5 日 除非特殊环境一定不允许开 go mod proxy (比如各种政府国企单位),不然不推荐使用 vendor 。 vendor 在不同 go sdk 下确实可能有问题,比如 go 的那几个 crypto 库,我就遇到过 sdk 不兼容的问题 |
16 stormtrooperx5 2025 年 3 月 5 日 @HappyAndSmile 依赖库多了再怎么自建 proxy 也比不上直接读本地快 |
17 zgh123 2025 年 3 月 5 日 如果旧项目采用的 vendor ,如何升级把 vendor 目录从 git 中去除呢? |
18 lasuar 2025 年 3 月 5 日 @zgh123 #17 你这个问题直接 kimi 可以解决,我就不贴答案了。问题是“采用 vendor 模式的 go 项目中,如何升级把 vendor 目录从 git 中去除。注意,vendor 内可能有已经失效的远程库,此时如何区分”。 解决的关键是在本地新建 xvendor 目录存放失效的远程库,然后在 go.mod 文件中使用 replace 语法帮助 go 定位这些库。 |
19 to2false 2025 年 3 月 6 日 vendor 放进 git ,我就有个问题,是不考虑 code review 吗 |
20 stormtrooperx5 2025 年 3 月 6 日 @to2false 自动排除 vendor 目录,这不就一行脚本的事 |
21 to2false 2025 年 3 月 7 日 @stormtrooperx5 题主的意思不是想把 vendor 带进 git 提交里吗?那不爆炸 |
22 stormtrooperx5 2025 年 3 月 7 日 @to2false code review 的时候自动排除 vendor 目录,和把 vendor 带进 git ,这两个操作冲突吗?我们有个项目加上 vendor 200w 行代码,一直这样管理的。开发效率很快,打包只要 2 分钟,从推送代码到滚动部署完也就五分钟 |
23 to2false 2025 年 3 月 7 日 |
24 stormtrooperx5 2025 年 3 月 7 日 @to2false 我不知道什么公司用 github 托管代码,这也太抽象了。在 gitlab 上很好设置 https://docs.gitlab.com/user/project/merge_requests/changes/#collapse-generated-files |
25 douz OP @stormtrooperx5 #24 学到了 |