【问题标题】:Config/initializers not pushing to repo配置/初始化程序不推送回购
【发布时间】:2014-03-08 04:08:43
【问题描述】:

这里的解决方案:Why does git say a sub project is dirty if I do not have any sub-modules in my repository?


所以我正在关注 Michael Hartl 的 Rails 教程。当我意识到我的应用程序无法在 Heroku 上运行时,我大约读了五章。我回头看了一下,我意识到我的整个 config/initializers 文件夹不在我的仓库中,如您在此处看到的:https://github.com/ksin/sample_app/tree/master/config

显然,该文件夹存在于我的工作区中。

$git status #=> 显示没有要提交的内容。

当我在初始化程序中更改文件并运行 $git status 时,config/initializers 显示为修改后的内容。但是,我根本无法进行更改。 (如我将运行$git add .,但当我之后运行$git status 时,未暂存的文件仍然存在。)

我不确定是什么问题,因为我以前从未遇到过这种情况。

在搜索了更多之后,我也做了: $git submodule #=> No submodule mapping found in .gitmodules for path 'config/initializers'

这意味着什么?

【问题讨论】:

标签: ruby-on-rails git heroku github


【解决方案1】:

太棒了!你实际上是怎么做的?我将来如何解决它? 只是想告诉你另一个技巧:覆盖目标目录,使用另一个作为初始化器:

 module SampleApp
    class Application < Rails::Application
      config.paths['config/initializers'] = Rails.root.join('bin', 'initializers')
      ...

现在,RAILS_ROOT/bin/initializers 是你的了..

当然,这很可怕,但是如果你现在需要快速修复,你可以做这个技巧,然后再进行修复。 :)

【讨论】:

  • 原来由于某种原因在 config/initializers 目录中还有另一个 .git 目录。我不知道我是什么时候创建的,也不知道它是如何结束的。这可能与子项目/子模块有关,也可能无关。但是,一旦我删除了那个 .git,我就可以定期暂存、提交和推送初始化程序文件夹了。
【解决方案2】:

您是否尝试过备份初始化程序文件夹,将其删除,然后

 git rm initializers

看起来,'initializers' 被初始化为子项目。

【讨论】:

  • 在您的静态页面分支中,您提交了子项目。在github.com/ksin/sample_app/commit/…查看我的评论
  • 我也这么认为。我现在正在尝试。
  • 我实际上不记得做过与子项目提交有关的任何事情。我实际上只是阅读并完全按照教程说明进行操作。
  • 我刚刚重新添加了初始化程序。问题仍然存在。当我暂存文件时,它出现了 1 个文件更改,1 个插入(+)创建模式 160000 配置/初始化程序
  • 啊,我想通了。谢谢大佬,你的提示有帮助。如果我有足够的声望,我会给你 +1。
猜你喜欢
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 2015-06-22
  • 1970-01-01
相关资源
最近更新 更多