关于 gitignoring Go 的供应商/文件夹的争论
是否将 Go 的供应商/文件夹添加到 .gitignore 文件中的困境是一个反复出现的问题开发社区中的问题。有些人主张排除它,而另一些人主张将其包含在内。
包含案例
- Github 自己的 gitignore 模板不排除vendor/,因为它的内容应进行版本控制,以避免潜在的引用更改、项目消失或可能破坏兼容性的工具演变。
- 如果在 Git 存储库中跟踪对供应商依赖项的修改,则必须将其置于版本控制之下。
排除案例
- gitignore.io,一个广泛使用的gitignore模板,确实排除了vendor/,因为它是由工具生成的。
- 排除供应商/可减少存储库大小和混乱,特别是在并非所有团队成员都需要供应商的情况下。
- 供应外部依赖项可能会增加引入漏洞或兼容性问题的风险。
替代方法
除了 gitignoring vendor/ 的二元选择之外,替代策略可以解决以下问题:
-
虚拟环境: Docker 和虚拟化可以标准化开发环境,最大限度地减少对供应商的需求。
-
混合方法:使供应商/不受版本控制,但提供用于在本地生成它的脚本或文档。
-
私有存储库:维护供应商依赖的私有存储库,可以被主项目引用。
-
Go Modules:当前的 Go 依赖管理标准,Go Modules,允许精确的版本控制,可能消除供应商的需要。
最终,决定取决于项目特定的要求和团队协作动态。通过了解每种方法的优点和缺点,开发人员可以就 gitignore 供应商/并确保稳定一致的开发环境做出明智的决策。
以上是是否要 gitignore:Go 的供应商/文件夹是否应该从版本控制中排除?的详细内容。更多信息请关注PHP中文网其他相关文章!