【问题标题】:Pushing .gitignore files to specific remote将 .gitignore 文件推送到特定远程
【发布时间】:2011-10-07 20:25:54
【问题描述】:

我制作了一个 Sinatra 应用程序,它将托管在 Heroku 上,源代码将在 GitHub 上。问题是我有一个带有 API 密钥的文件,该文件当前位于 .gitignore 中。有没有办法,我可以使用密钥文件将我的 repo 推送到 heroku,并在推送到 GitHub 时排除该文件?

提前致谢!

【问题讨论】:

    标签: heroku github gitignore


    【解决方案1】:

    可以只为部署而维护一个单独的分支,但要正确维护它需要很多纪律:

    1. 向添加配置文件的生产分支添加提交(git add -f 绕过您的排除项)。
    2. 要更新您的生产分支,请将其他分支(例如 master)合并到其中。
      但是,您必须切勿将您的生产分支合并到其他任何东西中,或基于任何“生产提交”(其祖先包含您的“添加密钥”提交)启动分支。

    更简单的方法是采用 Heroku 的习惯,即使用环境变量将您的秘密值传达给您的实例。请参阅Configuration and Config Vars 上的文档:

    heroku config:add KEY1=foobar KEY2=frobozz
    

    然后通过ENV['KEY1']ENV['KEY2'] 在您的初始化代码中或您需要的任何地方访问这些值。为了支持您的非 Heroku 部署,您可以定义相同的环境变量,或者如果环境变量不存在,则回退到读取现有配置文件。

    【讨论】:

    【解决方案2】:

    Figaro gem 提供了一种管理此问题的好方法。它基本上在本地模拟 Heroku 的环境变量方法,并且可以轻松地在开发环境和 Heroku 之间保持密钥同步。

    【讨论】:

      猜你喜欢
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2012-08-01
      • 2014-06-06
      • 2021-10-21
      • 2021-03-05
      相关资源
      最近更新 更多