我正在和朋友一起在Code Igniter中开发一个应用程序。因为我们两个人在我们的机器上都有不同的数据库登录,所以我们有不同的“config / database.php”文件。
我怎么能告诉Git我们俩都有不同的数据库配置?现在,我们每次拉动都会遇到合并冲突,因为“config / database.php”对我们来说不同。
答案 0 :(得分:6)
我通常将/application/config/database.php
文件重命名为/application/config/database.default.php
(版本化)并将原始路径添加到.gitignore
文件中。然后,每个开发人员将默认(无版本文件)复制回原始路径并根据其本地设置进行编辑。
这成为服务器设置过程中的一个额外步骤,但它可以避免您提到的悲伤。
答案 1 :(得分:1)
有两个选项:
结果你将在旧地方有文件,但不会再干扰“另一个”文件
答案 2 :(得分:1)
我们通常将数据库配置文件放在.gitignore
文件中以避免这些问题。无论如何不要将这些配置文件与他们的用户/密码放在git中是个好主意
我们经常会保留一个config/database.yml.template
文件(我们使用rails)作为人们复制到config/database.yml
然后编辑到本地计算机的基础。 database.yml
文件名放在.gitignore
文件中(在版本控制下共享)。
可以看到gitignore的基础知识here 其他信息,包括要避免的陷阱:Ignore files that have already been committed to a Git repository
答案 3 :(得分:1)
有一个文件根据环境变量选择配置。在服务器的配置中设置该变量。
<?php
if (getenv('WHOS_CONFIG') == 'mine') { … } else { … }
并在服务器配置中(你不会验证,否则同样的问题再次出现:) 例如对于Apache:
<VirtualHost *>
SetEnv WHOS_CONFIG mine
…
或者,使用一个包含database.php
文件的公共database.local.php
配置文件,该文件未进行版本控制。后者将覆盖您需要的变量。