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

17
我创建了一个Sinatra应用,将托管在Heroku上,并且源代码将上传到GitHub。问题是我有一个带有API密钥的文件,目前它在.gitignore中。有没有办法在将存储库推送到Heroku时将密钥文件一并推送,但在推送到GitHub时排除该文件?
提前致谢!
2个回答

15

可以单独维护一个部署分支,但是需要严格纪律才能正确地维护它:

  1. 向生产分支添加配置文件的提交(git add -f 通过规避排除来实现)。
  2. 要更新生产分支,请将其他分支(例如 master)合并到它中。
    但是,您不能将生产分支合并到其他任何东西中,也不能基于任何“生产提交”(其祖先包括“添加密钥”的提交)启动分支。

更简单的方法是采用Heroku的方式,使用环境变量将秘密值传递给您的实例。请参阅关于配置和配置变量的文档:

heroku config:add KEY1=foobar KEY2=frobozz

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


除了环境变量,如果您需要在编译Slug期间访问变量,则可能需要“https://devcenter.heroku.com/articles/labs-user-env-compile”。 - Swapnil Chincholkar

3

Figaro gem是一种很好的方法来解决这个问题。它基本上可以在本地模拟Heroku的环境变量方式,并且使得您可以轻松地在开发环境和Heroku之间保持密钥同步。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接