¿Cómo puedo usar Git con diferentes configuraciones de database entre desarrolladores?

Estoy desarrollando una aplicación en Code Igniter con un amigo. Debido a que ambos tenemos diferentes inicios de session de bases de datos en nuestras máquinas, tenemos diferentes files "config / database.php".

¿Cómo puedo decirle a Git que ambos tenemos diferentes configuraciones de database? En este momento, estamos teniendo conflictos de fusión cada vez que lo hacemos porque "config / database.php" es diferente para nosotros.

Normalmente cambio el nombre del file /application/config/database.php a /application/config/database.default.php (versioned) y añado la ruta original al file .gitignore . Luego, cada desarrollador copy el file pnetworkingeterminado (file no versionado) de vuelta a la ruta original y lo edita según su configuration local.

Esto se convierte en un paso adicional en el process de configuration del server, pero guarda la pena que mencionas.

Tener un solo file que select config basado en una variable de entorno. Establezca esa variable en la configuration de su server.

 <?php if (getenv('WHOS_CONFIG') == 'mine') { … } else { … } 

y en la configuration del server (que no verificaría, de lo contrario el mismo problema surge de nuevo 🙂
por ejemplo, para Apache:

 <VirtualHost *> SetEnv WHOS_CONFIG mine … 

Alternativamente, tenga un file de configuration database.php común que incluya el file database.local.php que no está versionado. Esto último anularía las variables que necesita.

Dos opciones son:

  1. No controle la versión de este file más (dejo git-command en su investigación)
  2. Use el file .gitignore

Como resultado, tendrá un file en un lugar antiguo, pero ya no interferirá con "otro" file

Usualmente ponemos files de configuration de database en el file .gitignore para evitar estos problemas. De todos modos, es una buena idea no poner estos files de configuration con sus usuarios / passwords en git.
Con frecuencia mantendremos un file config/database.yml.template (estamos usando rails) como base para que las personas copien a config/database.yml y luego editen a su máquina local. El nombre de file database.yml se coloca en el file .gitignore (que se comparte bajo control de versión).

Los conceptos básicos de gitignore se pueden ver aquí .
Información adicional, incluidas las dificultades para evitar en: Ignorar los files que ya han sido enviados a un repository de Git