首页 >后端开发 >Golang >我应该将 Go `vendor` 目录提交到版本控制吗?

我应该将 Go `vendor` 目录提交到版本控制吗?

Patricia Arquette
Patricia Arquette原创
2024-12-14 09:13:10507浏览

Should I Commit the Go `vendor` Directory to Version Control?

管理 Go 依赖项:提交供应商目录

使用 dep 工具处理 Go 依赖项时,会出现一个常见问题:您是否应该提交将生成的供应商目录纳入版本控制?还是应该在签出存储库后始终执行 dep Ensure?

提交供应商目录:优点和缺点

根据官方 dep FAQ,提交供应商目录具有以下优点:

  • 可重现构建: 提交供应商目录可确保跨不同环境的可重复构建,因为它可以防止依赖项重命名、删除和提交历史记录修改。
  • 更快的依赖项管理: 您可以跳过dep 确保在大多数 Git 操作(例如克隆、合并和获取最新版本)之后将供应商目录与 Gopkg.lock 文件同步的步骤

但是,提交供应商目录也有一些缺点:

  • 增加存储库大小:供应商目录会显着增加存储库的大小。
  • PR diff 混淆: 修改Gopkg.lock 文件将触发供应商目录中的更改,这可能会混乱 PR 差异。

最佳实践

是否提交供应商目录取决于您的具体要求和偏好。如果您优先考虑可重复性并最小化依赖管理开销,那么提交供应商目录可能是一个合适的选择。但是,如果担心存储库大小和差异清晰度,您可以考虑在签出存储库后始终执行 dep Ensure。

以上是我应该将 Go `vendor` 目录提交到版本控制吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn