【发布时间】:2019-06-02 21:26:00
【问题描述】:
我在这个话题上非常愚蠢和新。我已经搜索了一个明确的答案,但到目前为止我还没有找到。而且我害怕破坏我的产品服务器文件。所以..
我有一个服务器(用 pyhton 和 Django 编写)。我有一个根据环境而变化的文件(settings.py)。
我有 3 个用于 3 个环境的布尔变量 在本地计算机上运行时,我会相应地更改此文件,以及开发服务器和产品服务器(都托管在 Heorku 中)。
我正在使用sourcetree 来管理我的 git。
当我想在开发服务器中测试我的代码时,我将我的代码从我的 bitbucket repo 'dev' 分支推送到我的 heroku git DevServer。但随后我的settings.py 也被推送,因此我需要将其配置回开发服务器配置。然后回到本地开发,然后再次到开发服务器,然后到生产服务器 - 分配单个文件推送,在我看来,我可以避免。当我从开发合并到master时,这个settings.py文件将再次被更改,我需要再次更新它以匹配生产环境。
长话短说,我想避免这种情况。一旦我把这个文件放在服务器中,我想从更改中忽略它。但是将其置于忽略状态将始终忽略它。有时我确实想将文件中的重要更改推送到所有存储库/环境..
我尝试不提交该文件,但我收到了需要提交或丢弃该文件的错误。
【问题讨论】:
-
我建议你阅读一下
.gitignore(man page) -
在
rails中,您在同一个配置文件中有不同的开发、测试和生产配置。因此你没有这个困境。您可以使用 env 变量在两者之间进行选择。你确定 django 不一样吗? -
好点.. 没有考虑这个方向:) 检查@Amadan 的答案.. 在heroku 中使用环境变量。效果很好