将.gitignore文件推送到特定的远程

时间:2011-10-07 20:25:54

标签: heroku github gitignore

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

提前致谢!

2 个答案:

答案 0 :(得分:15)

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

  1. 向生产分支添加提交,该分支会添加配置文件(git add -f到bybass您的排除项。)
  2. 要更新您的生产分支,请将其他分支(例如 master )合并到其中 但是,您必须永远将您的生产分支合并到其他任何东西,或者根据任何“生产提交”(其祖先包括您的“添加密钥”提交)启动分支。
  3. 更简单的方法是采用Heroku使用环境变量的自定义将您的秘密值传递给您的实例。请参阅Configuration and Config Vars上的文档:

    heroku config:add KEY1=foobar KEY2=frobozz
    

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

答案 1 :(得分:3)

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