Rya*_*yan 8 git deployment version-control configuration
我有一个config.php假设在不同分支中的内容不同,例如testing和master.
我在另一个问题(防止合并来自Git的master中的文件)中询问如何防止此文件合并.
但我想知道,这是正确的方法吗?
我相信这是一个非常常见的用例,在不同的环境中有不同的配置文件,你想要跟踪配置,对吧?
执行此操作的经典方法是有一个名为config.yml-dist的默认配置文件(假设您的原始文件名为config.yml);您将原始文件添加到 .gitignore 中,并仅对dist文件进行版本控制。
部署应用程序或重新克隆项目后,只需cp config.yml-dist config.yml更改所需的设置即可。
我在 PHP行业遇到的很多人都使用这种方法。
但是,有一个我更喜欢并且发现更干净的方法:使用环境变量。例子:
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
Run Code Online (Sandbox Code Playgroud)
这样,您将拥有一个单一版本化的配置文件,而无需编辑任何一个配置文件。