Configuración de Git para desarrollo y twig de testing con diferentes files de configuration

Tenemos una installation de WordPress que tiene un file de configuration diferente para Live, Test, Dev. Entiendo cómo hacer que Git ignore el file wp-config.php , pero quiero un file WP-config diferente en cada una de las twigs. De modo que cuando un desarrollador cambie a Dev, usará la configuration de la database para Dev.

Mi process, es:

  1. poner el sitio en vivo en el maestro.

  2. agregar .gitgnore

  3. cometer

  4. crear una nueva twig Dev

Siguiendo este procedimiento, significa que ya no puedo actualizar la twig Dev con los Detalles de configuration Dev para que otros usuarios puedan usar.

¿Alguien puede aconsejar sobre cómo hacer esto, por favor?

Entiendo que desea tener diferentes files wp-config en sus twigs, pero no deberían fusionarse cuando fusiona una twig en el maestro.

Puedo pensar en tres soluciones para tu problema:

  1. Podrías ponerlos en tus twigs y no fusionarlos en maestros, sino en cambio hacer una selección de cerezas.

  2. Podrías ponerlos en tus twigs y enviar el file correcto después de cada fusión.

  3. Puede mantener los files fuera de su repository completamente (a través de .gitignore) y usar el enlace "post-checkout" para copyr / vincular el file correcto en el directory de trabajo después de cada pago.

Los primeros dos tienen la ventaja de que sus files están en el repository, pero la fusión / corrección se pone fea.

El segundo es un poco de piratería informática y todos los que han revisado el repository tienen que colocar el gancho en su directory .git / hooks. Además, probablemente necesite diferentes scripts para sistemas Windows y Linux.

Lectura adicional: files condicionales de Git

Lo que hice en el pasado es confirmar el file wp-config, pero extraer la información de connection de db en otro file e includelo en wp-config. Luego puede tener files en control de fuente como db-conn.dev, db-conn.prod y usar una herramienta de compilation como Grunt o Gulp para crear una tarea que genere un file db-conn.php que se incluye en wp-config. El file generado no estaría en control de fuente.

Aquí hay un ejemplo de una tarea tramposa para generar un config.php de config.dev

 gulp.task('swapEnvConfigDev', function(){ gulp.src('./env-config/config.dev') .pipe(rename('config.php')) .pipe(gulp.dest('./env-config/')); });