首页 >后端开发 >Golang >是否使用 .gitignore:你应该在你的 Go 项目中包含 `vendor/` 吗?

是否使用 .gitignore:你应该在你的 Go 项目中包含 `vendor/` 吗?

Patricia Arquette
Patricia Arquette原创
2024-11-03 21:00:03344浏览

To .gitignore or Not to .gitignore: Should You Include `vendor/` in Your Go Project?

Go 项目中的供应商文件夹管理:是否使用 .gitignore?

是否忽略 .gitignore 中的供应商/目录是一个常见的争论

在 .gitignore 中忽略供应商/的原因:

  • 避免引用更改: Vendoring 冻结依赖版本,防止依赖项的更改会破坏构建。
  • 消失的项目:如果依赖项项目消失,将其放在供应商/中可确保持续可用性。
  • 工具演变: 依赖管理工具可能会随着时间的推移而发展,忽略供应商/保留与未来工具的兼容性。
  • 本地修改: 如果对 Git 存储库中的依赖项进行修改,则应将其修改为

在.gitignore中包含vendor/的原因:

  • 使存储库混乱:供应商的依赖项可能会显着增加存储库大小。
  • 依赖关系冲突:如果不集中处理依赖关系,多个团队成员在同一个项目上工作可能会导致依赖关系冲突。
  • 对于大多数人来说是不必要的项目:对于不需要严格依赖管理的项目,忽略vendor/是不必要的开销。

替代解决方案:

  • 虚拟环境:Docker 或虚拟化可以通过标准化工具提供隔离的开发环境,从而无需单独的依赖管理。
  • 混合方法:使供应商/不受版本控制但提供工具或文档来生成它。
  • 私有存储库:为供应商依赖项维护一个私有存储库,允许开发人员使用相同的版本,而无需将其直接包含在主存储库中。
  • Go 模块:Go 模块提供精确的依赖版本控制并减少对供应商的需求。

以上是是否使用 .gitignore:你应该在你的 Go 项目中包含 `vendor/` 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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