Go 项目中的供应商文件夹管理:是否使用 .gitignore?
是否忽略 .gitignore 中的供应商/目录是一个常见的争论
在 .gitignore 中忽略供应商/的原因:
-
避免引用更改: Vendoring 冻结依赖版本,防止依赖项的更改会破坏构建。
-
消失的项目:如果依赖项项目消失,将其放在供应商/中可确保持续可用性。
-
工具演变: 依赖管理工具可能会随着时间的推移而发展,忽略供应商/保留与未来工具的兼容性。
-
本地修改: 如果对 Git 存储库中的依赖项进行修改,则应将其修改为
在.gitignore中包含vendor/的原因:
-
使存储库混乱:供应商的依赖项可能会显着增加存储库大小。
-
依赖关系冲突:如果不集中处理依赖关系,多个团队成员在同一个项目上工作可能会导致依赖关系冲突。
-
对于大多数人来说是不必要的项目:对于不需要严格依赖管理的项目,忽略vendor/是不必要的开销。
替代解决方案:
-
虚拟环境:Docker 或虚拟化可以通过标准化工具提供隔离的开发环境,从而无需单独的依赖管理。
-
混合方法:使供应商/不受版本控制但提供工具或文档来生成它。
-
私有存储库:为供应商依赖项维护一个私有存储库,允许开发人员使用相同的版本,而无需将其直接包含在主存储库中。
-
Go 模块:Go 模块提供精确的依赖版本控制并减少对供应商的需求。
以上是是否使用 .gitignore:你应该在你的 Go 项目中包含 `vendor/` 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!