Cambiar de SVN a Git en un entorno acelerado

El equipo de desarrollo del que formo parte consta de cinco miembros en un entorno de desarrollo interno acelerado (desarrollamos soluciones basadas en web que utilizan otros departamentos, es decir, un ERP). Actualmente usamos SVN para un único proyecto que tiene un entorno de desarrollo y un entorno en vivo; el entorno de desarrollo nos permite garantizar que las características funcionen antes de enviarlas al entorno en vivo. Cuando se cumplen los requisitos, comprometemos los cambios al repository SVN desde el server de desarrollo y realizamos esos cambios específicos en el server activo.

Flujo de trabajo actual usando SVN

Hacemos la testing en dev hasta que el código alcanza un punto estable para comprometerse.

Sin embargo, queremos cambiar a Git (muchos de nuestros otros proyectos están alojados en Git, y queremos que sea coherente). Ha sido un desafío. Queremos tener un flujo de trabajo que sea fácil y rápido de usar y rastrear. Sugerí tener dos twigs principales para live (master) y dev, y tener cada feature / fix en sus propias twigs. Esto hace que sea mejor rastrear las cosas, pero es más difícil implementarlas, ya que lleva mucho más time y algunos de los cambios que hacemos en el código deben realizarse en vivo lo más rápido posible.

Otra sugerencia fue tener solo una twig dev y live. Nos comprometeríamos con la twig de desarrollo, aseguramos que funcionen, y una vez que estemos satisfechos con el resultado, fusione esos files en vivo. Lo único con esto es que no puedo encontrar una forma decente de implementar este comportamiento. ¿Es posible fusionar rápidamente files específicos de una twig a otra?

¿Hay algún otro flujo de trabajo git que sea más adecuado para nuestro tipo de entorno?

Ambas sugerencias pueden funcionar, pero los dos flujos de trabajo pueden mejorarse con el siguiente flujo de trabajo:

  • develop branch: todos los desarrolladores trabajan en esta twig. Cuando los cambios están listos para implementarse en un entorno en vivo, el desarrollador puede enviar sus cambios a la twig en live ( master ).
  • Feature / hotfix branches: son la twig de vida en corto para desarrolladores en su repository local. Por ejemplo, si un desarrollador desea desarrollar nuevas funciones o corregir errores, puede crear la function local / twig de revisión desde la twig de develop . Después de terminar el trabajo, combine la function / twig de revisión en la twig de develop .
  • twig en live / master : funciona como versiones de producción / lanzadas. Después de que los códigos se verifican en la twig de develop , la twig de develop se puede fusionar en la twig en live / master .

Las diferencias entre las dos sugerencias que enumera:

  1. También tiene dos twigs principales ( develop y live / master ) como primera sugerencia, pero solo tiene twigs de característica / revisión para la twig de develop desde el trabajo de twig live / master como versión de producción / lanzamiento.
  2. Este flujo de trabajo no realiza cambios en la twig de develop directamente. Funciona en twigs de características / revisiones y luego fusiona los cambios en la twig de develop .