Cuál es la mejor práctica para manejar git en un proyecto con 3 ambientes?

Pregunta de la clase:
Hector Vasquez

Hector Vasquez

Pregunta
studenthace 8 años

Si tengo un proyecto con 3 ambientes, por ejemplo:

miproyecto.com/desarrollo/

miproyecto.com/qa/

miproyecto.com/ (<- este es producción)

Y cada una tiene un archivo de configuración, donde se especifica a qué ambiente se conecta dentro de un mismo api (cada una con su propia BD):

miapi.com/desarrollo/

miapi.com/qa/

miapi.com/produccion/

Cuál es la mejor práctica para manejar estos 3 ambientes por git? teniendo en cuenta que cada ambiente se diferencia solo en el archivo de configuración, por el ambiente api al que apunta.

O no es buena práctica manejar los ambientes de esta manera inicialmente?

4 respuestas
para escribir tu comentario
    Rodrigo Raul Flores Perez

    Rodrigo Raul Flores Perez

    studenthace 4 años

    Hola a todos.

    Yo justo tengo esa misma pregunta porque estoy trabajando con código que debe correr local, en nube privada y en nube pública, cada uno con sus particularidades (archivos de configuración independientes), lo que sigue es, saber si es recomendable usar branches y si esto puede ser utilizando de manera posterior por un sistema de entrega continua. ¿Alguna experiencia con relación a esto?

    Oswaldo E. Montaño

    Oswaldo E. Montaño

    studenthace 8 años

    Hola a todos.

    Aún cuando dicen que es raro lo que quieres hacer creo que es válido lo que planteas.

    Yo recomiendo que te crees las ramas DESARROLLO y QA o las que necesites, las cuales evidentemente deben trabajar con su conexión de DB a parte, a fin de garantizar la integridad de los datos en tu BD primaria.

    Lo único que debes hacer es, girar instrucciones a los desarrolladores que estén trabajando en esas ramas alternas, que luego de clonar el proyecto, no le hagan seguimiento al archivo de configuración a la BD.

    Para esto creo que te puede servir el comando:

    $ git mv [file-original] [file-renamed]

    que permite renombrar un archivo y dónde file-renamed puede ser el mismo nombre file-oginal, a fin de no tener que cambiar nada en otra parte del código. Pero el SCV deja de hacerle seguimiento por tratarse de un nuevo archivo.

    De esta manera cuando sean apropiado se fusionen estas ramas al MASTER y no se altera de ningún modo tu archivo de configuración a la BD principal.

    Considero lo más apropiado, pero quedo abierto a las observaciones de los compañeros, espero sus apreciaciones al respecto. Saludos!

    Luis Antonio Guillen Galindo

    Luis Antonio Guillen Galindo

    studenthace 8 años

    Usa .gitignore, agrega el archivo de configuración para que no lo tome en cuenta y en cada ambiente crea el archivo con la configuración que corresponda.

    En cuanto a la API, si es raro el como lo manejas, la API me quiero imaginar que es un proyecto aparte, por lo que tal vez sea otro repositorio, entonces es clonarlo en cada ambiente.

    Saludos.

    Mike Nieva

    Mike Nieva

    teacherhace 8 años

    Héctor qué tal.

    Es rara la configuración que quieres hacer.

    El objetivo de los ambientes es separar tus experimentos y pruebas del verdadero código que quieres que tus usuarios vean.

    Con el ambiente de desarrollo, tendría un único API para comunicarme con la base de datos global y de ahí, que pueda hacer pruebas mucho más reales.

    Y, lo correría en otro dominio-servidor.

    Entiendo qué quieres lograr, pero no entiendo totalmente la necesidad de hacerlo así.

Curso profesional de Git y GitHub 2016

Curso profesional de Git y GitHub 2016

Entiende e implementa Git y Github en tu flujo de trabajo. Son el estándar de la industria para control de versiones de código y tus proyectos. De cero a avanzado.

Curso profesional de Git y GitHub 2016
Curso profesional de Git y GitHub 2016

Curso profesional de Git y GitHub 2016

Entiende e implementa Git y Github en tu flujo de trabajo. Son el estándar de la industria para control de versiones de código y tus proyectos. De cero a avanzado.