我的问题/问题
我们正在开发一个托管在 github 上的开源项目。该项目是用 Django 编写的,因此我们在 settings.py 文件中进行了设置。我们将其开源不是因为订阅太便宜,而是因为我们故意希望它是开源的。
无论如何,我们也想自己运行这段代码,所以我们有一个 site_settings.py ,其中包含所有敏感数据,如 db 密码等。由于我们不希望在 github 上让所有人看到,所以它在 .gitignore 文件中.
通常我们克隆 repo 并在本地和服务器上添加这个文件,这样我们都有我们的个人设置,敏感数据不会存储在 git 上。
问题是我们现在想在 Heroku 上运行我们的代码,它不支持在服务器上创建文件,因为 heroku 不像普通服务器那样工作(它与分布式文件系统一起工作)。
当然我自己也考虑过,但我不确定这是否是正确的方法。请记住,我对 Heroku 和 Git 都是新手。以下是我目前的解决方案:
我目前关于如何解决这个问题的想法
遥控器有两种:
- 起源 == Github
- heroku == Heroku
撇开所有的开发和特性分支,我们只需要担心两个主分支(在 Heroku 和 Github 上)。
我的想法是在本地设置这样的分支机构:
- 主 -> 遥控器/原点/主
- heroku -> 遥控器/heroku/master
在主分支上,我们将 site_settings.py 放在 .gitignore 中,因此 git 在提交到 Github 时会忽略它,所有开发分支等也是如此。我们在主分支中收集所有更改,直到我们有新版本。
在 heroku 分支上,我们编辑了 .gitignore 文件以停止忽略 site_settings.py,因此一旦我们推送到 heroku 分支,它将被提交给 Heroku。
一旦我们有了新版本,我们切换到 heroku 分支并将 master 合并到 heroku 中,如下所示:
git checkout heroku
git pull
git merge master
一旦我们从合并中解决了合并冲突,我们就提交给 Heroku,我们有一个新版本启动并运行.. =D
我的问题
我的想法是否可以解决这个问题(它甚至可以像这样与 .gitignore 一起使用吗?)如果不是,我们如何以最干净/最好的方式解决这个问题?如果您需要更多信息,请随时询问:)