【问题标题】:Why is config/database.yml included in the .gitignore file by default for my Rails app?为什么我的 Rails 应用程序默认将 config/database.yml 包含在 .gitignore 文件中?
【发布时间】:2012-11-13 07:44:54
【问题描述】:

为什么 config/database.yml 默认会包含在 .gitignore 文件中?这个小东西花了我一两个小时。

我遇到这个麻烦的方式:

  • 我以为我对 git 如何处理重置和恢复感到困惑。
  • 我一直在试验影响 config/database.yml 的代码更改
  • 我不喜欢这个结果,所以我放弃了更改。
  • 这很奇怪,因为我似乎无法检出未经编辑的 config/database.yml 版本
  • 然后我花了太多时间试图弄清楚我是否误解了 git 的重置和合并命令。
  • 原来 config/database.yml 默认包含在 .gitignore 文件中。

不知道为什么。花了我一个小时左右的时间摆弄重置和合并选项,结果发现我什至没有跟踪文件。在我写这篇文章时,我意识到我并不完全确定 .gitignore 何时被编写/修改为包含 config/database.yml

它应该在那里有什么原因吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 git version-control


    【解决方案1】:

    如果您看到“git reset”和“git revert”似乎没有任何效果的文件,您可能会发现该文件列在项目根目录的 .gitignore 文件中。

    【讨论】:

    • 问题不是“这个文件被忽略了吗?”,问题是“为什么”。
    • 七海猫,-1 ?此处的 OP 中有多个问题/内容点。 -1 似乎有点'不合时宜。而且,那些为这个问题的主干中包含的问题而苦苦挣扎的人可能会对这个答案感到满意。后续答案增加了理解,但这并不意味着这个答案值得反对。 Upvoting 有助于确定最佳答案(如下所示) Downvoting 应该突出非建设性的答案,但事实并非如此。
    【解决方案2】:

    该文件通常不会包含太多有趣的内容,无法在版本控制系统中进行跟踪。

    但是,它通常包含用于连接数据库服务器的密码,不应公开。

    它还经常包含需要在不同工作副本、数据库服务器的不同用户或数据库名称、SQLite 文件的不同路径之间有所不同的信息。这些差异将导致无法在版本控制系统中跟踪此文件。

    【讨论】:

    • 很多部署策略也会自动生成database.yml。
    • 谢谢qqx。很有启发性。我开始尝试将 Rails 连接到多个数据库。当我想放弃更改并回到我正在做的事情时,我很惊讶一些看似重要的文件没有被跟踪。也许那些为此类事情编写 rails 教程的人会注意到这个陷阱就在那里。也许有些人会认为我的错误是初学者的错误,但这同样让我付出了代价。一般来说,我没有找到将 rails 连接到多个 db 的简单路径,但这在这里是题外话。再次感谢。
    • 数字,谢谢。非常有帮助。部署是我尚未努力的一步。会牢记您的观点。
    • 我猜这里还有更多,现在我看:stackoverflow.com/questions/8494783/…
    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 2013-10-17
    • 2013-11-25
    • 2011-12-11
    • 1970-01-01
    • 2011-09-24
    • 2019-11-09
    • 2015-11-14
    相关资源
    最近更新 更多