【问题标题】:Is there a way to have a file in one repository but not in another?有没有办法在一个存储库中有一个文件但在另一个存储库中没有?
【发布时间】:2013-12-18 03:34:57
【问题描述】:

我有一个 node.js 应用程序,其中有一个设置文件,当我推送到 Heroku 时,该文件需要在仓库中,但我想在 github 上分享我的项目,没有我的 API 密钥、会话秘密等...

我知道我可以将文件添加到 .gitignore,但它不会推送到 Heroku。

否则,每当我进行更改时,我都会手动将文件从一个存储库复制到另一个存储库。

有没有更好的办法。

两年前我查看了this question 的提问和回答,但是关于“严格遵守纪律”的警告让我对分支解决方案有点害羞,所以我想我会问是否有任何改变。

此外,如果可能的话,我想避免该答案中提到的 environment variables 方法,因为某些 API 密钥可能会在开发过程中更改几次(从个人开发密钥到公司密钥),会话密码、数据库密码等也一样...(“1234”在本地主机上被破坏时有效,但我可能会做一些更长时间但在测试版中仍然令人难忘的事情,并最终用随机散列替换我的所有令牌最终)

我还查看了this question,但大家一致认为接受的答案不起作用,我犹豫是否要使用我的 API 密钥尝试

【问题讨论】:

  • 为什么不只是configuration variables?它们很容易更改,如果您需要多个环境(测试、生产等),您可以创建多个应用程序。

标签: git heroku github


【解决方案1】:

您需要为此使用环境变量,它们的确切目的是它们在 Heroku 和您的本地机器上很容易不同。

heroku config 列出了可从您的测功机访问的环境变量,这正是 API 密钥需要去的地方。

【讨论】:

    【解决方案2】:

    Heroku 是围绕使用环境变量进行配置而设计的,因此试图避免它可能是徒劳的。请参阅此链接了解基本原理:http://12factor.net/config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 2018-07-29
      • 2018-09-30
      • 1970-01-01
      • 2021-10-25
      相关资源
      最近更新 更多