¿Cuál es la forma correcta de mantener una "versión para el server", con solo los files de configuration modificados, en Git?

A veces trabajo con Codeigniter y, cuando termine de desarrollar en el sitio local, debo migrar los files al server. Todos los files en la carpeta /config/ necesitan ser cambiados para coincidir con la configuration del Servidor. No está bien hacer un commit completo para estos cambios, ¿simplemente hago que Git ignore estos files por completo, o hay una forma de rastrear estos cambios y aplicarlos con Git en el momento correcto?

Puedes mantener versionado:

  • dos "files de configuration de valores", con los valores correctos para cada entorno
  • un file de configuration de plantilla, con marcador de position de valor en él (por ejemplo, @@PORT_NUMBER@@ )
  • una secuencia de commands capaz de generar el file de configuration real en function del entorno actual
  • un controller de filter de contenido que, al finalizar la compra, activará la secuencia de commands para generar el file de configuration correcto.

controlador de filtro de contenido

Nota: eso supone que el file de configuration de la plantilla tiene un contenido reconocible (el filter no tiene un nombre o ruta del file). Consulte " Git equivalent of subversion's $URL$ keyword expansion " para get más información sobre la limitación del controller de filter de contenido de git).

Depende de tus necesidades. En mi compañía usamos otro enfoque. Hemos creado varios entornos (donde el asterisco es el nombre interno del proyecto):

  • desarrollo – sitio se ejecuta en el dominio **. local.com *
  • testing – sitio ejecutado en testing de dominio . *. company.com
  • beta – beta. *. company.com
  • producción, cualquier otro dominio.

En base al nombre de dominio cambiamos las configuraciones automáticamente. El file de configuration básica se ve así:

 <?php return array( '_env' => array( 'devel' => array( // config for devel ), 'production' => array( // config for production ) ) ); ?> 

Algunos frameworks (AFAIR Zend) establecen el nombre del entorno en la configuration de Virtual Host (o .htaccess). Debería ver: zend framework auto switch producción ensayo de testing … etc.

¿Has mirado la documentation de CI? Hay una sección sobre eso.

Crea dos carpetas en la carpeta config . Uno se llama development y el otro es production . Ahora copie config.php, database.php, etc. en cada una de estas carpetas. Ahora, cuando esté en el server de producción, CodeIgniter primero comprobará la carpeta de production de los files. Si no está allí, entonces usa el file pnetworkingeterminado en la carpeta config . Y si se encuentra en un entorno de desarrollo, CodeIgniter primero verificará la carpeta de development .

Si desea mantener cualquier file de configuration idéntico al entorno de producción y desarrollo, guárdelo en la carpeta de config .

Si desea configurar el entorno, agregue el siguiente código en el file .htaccess:

 #This code for Development Environment SetEnv CI_ENV development 

y

 #This code for Production Environment SetEnv CI_ENV production