应该将 .bundle 目录添加到 CVS 中吗?

Should `.bundle` directory be added to CVS?

最近我将我的一些 Ruby 项目依赖项移到了 development 组,以便不在生产环境中安装它们(例如 rubocop

在那些项目中,我看到有一个新文件 .bundle/config,其内容如下:

---
BUNDLE_WITH: "development"

---
BUNDLE_WITHOUT: "development"

我想我可以安全地将此文件(和 .bundle)文件夹添加到 .gitignore,但可以肯定的是 - 有什么最佳实践吗?

无法在 $PROJECT_ROOT/.bundle 目录中找到任何有用的信息

TL;DR

不要将 .bundle 目录存储在源中。它旨在成为某些捆绑器设置和标志的本地缓存,而不是所有项目贡献者之间共享的东西。

分析

有一些支持和反对将您的 Gemfile.lock 存储在源代码管理中的论点,但 .bundle 目录的内容不打算在项目中的多个 users/machines 之间共享。跟踪的唯一潜在用例。bundle/config 是记住生产或测试分支中运行的某些标志,但无论如何 that behavior is deprecated

实际上,存储 .bundle 目录可能会导致您的开发人员意外使用标志。这可能会导致不必要的调试工作,以及项目贡献者的 potentially-surprising 行为。 Rake 任务或 setup/deployment 脚本是处理 Bundler 标志的更好选择,尤其是当这种行为已被弃用并且计划在 Bundler 3 中消失时。