2011-12-14 17 views
9

Me preguntaba después de haber tenido algunos problemas con Git cuál es la mejor manera de manejar el repositorio de un sitio web. Actualmente tenemos 3 versiones de un sitio web; producción, beta y desarrollo. Hemos configurado el repositorio Git de la misma manera con 3 ramas, master (producción), beta (beta), develop (desarrollo).¿Cómo administrar mejor un repositorio de Git para un sitio web en 3 etapas?

Una vez que terminemos con un conjunto de cambios/características, actualizamos la rama de desarrollo y luego copiamos esa rama a la rama beta. Mientras tanto, el desarrollo aún continúa en la rama de desarrollo con más funciones nuevas, etc.

El problema que tenemos es que, inevitablemente, mientras el código está en beta, se encuentran errores. Esos errores deben corregirse en las ramas de desarrollo y beta. Mientras tanto, se ha realizado un mayor desarrollo en la rama de desarrollo que no debe ni debe pertenecer a la rama beta, por lo que no podemos fusionar realmente las ramas beta y de desarrollo, ¿o sí? Tampoco quiero pasar el tiempo y la molestia de tener que realizar confirmaciones individuales para ambos repositorios con el cambio que se aplica a ambos.

Así que lo que estoy buscando es la mejor manera de gestionar este tipo de flujo de trabajo con Git.

Gracias

Respuesta

6

Echa un vistazo a git-flow (aka: A successful Git branching model). La producción se ejecuta desde la rama principal, se desarrolla desde el desarrollo y la versión beta desde la rama de publicación actual (si hay una).

Editar: puntos esta respuesta a los mismos principios que la answer by Justin

+0

Este proyecto no ha visto actividad en más de un año. El tenedor AVH parece prometedor con un montón de mejoras: https://github.com/petervanderdoes/gitflow/wiki – angularsen

5

Uno de los mejores métodos que he visto para un flujo de trabajo-qa-dev liberación concurrente es "A successful Git branching model". El momento aha para mí fue el uso de --no-ff para crear un compromiso "roll-up" en la rama de desarrollo: esto hace que las funciones y las correcciones de errores sean fáciles de administrar.

0

Ok por lo que tiene maestro (producción),

que tiene que hacer un poco de desarrollo basado en maestra para usted la comprobación maestra y rama con un nombre de la sucursal que describa lo que desee agregar. Ex función_123.
Pedido feature_123 y el trabajo, agregar, comprometerse, empujar, etc ..

A continuación, encontrar los fallos en la producción, se echa un vistazo amo y sucursal con un nombre de la sucursal que describa lo que quiere fijar Ex issue_234.
Pedido issue_234 y el trabajo, agregar, comprometerse, empujar, etc ..

Después de la issue_234 es fijo y funciona, checkout master y fusionarse con issue_234
Entonces, la caja feature_123 y fusionarse con issue_234.

Tanto la rama principal como la característica tienen el error issue_234 corregido ahora.
Martin

Cuestiones relacionadas