2010-12-02 8 views
6

Me estoy perdiendo con el modelo de ramificación de Git y el flujo de trabajo que quiero crear para mi equipo (desarrolladores + diseñadores).Flujo de trabajo de Git para un pequeño equipo de desarrolladores y diseñadores

Supongamos que el proyecto se basa en un patrón MVC, así que tenemos una estructura similar a:

Modelos/
Controladores/
Vistas/

Desarrolladores trabaja en las M & partes C con algunas vistas básicas/generadas (aplicaciones Rails, Django o CakePHP, por ejemplo) y Diseñadores obras en la parte V

¿Cómo puedo manejar que los desarrolladores trabaja en M & C y mantener algunos puntos de vista básicos de mierda, y en el mismo tiempo, los diseñadores realizar vistas atractivas basadas en controladores de acciones codifican y se añaden por los desarrolladores progresivamente?

Traté de hacer que funciona con 3 ramas:

maestros (listo para la producción)
dev
ui

pero ni idea de cómo un diseñador que trabaja en ui la sucursal puede mantener el código en otro lugar que/las vistas actualizadas y una aplicación en funcionamiento ...

Gracias amigos por ayuda!

Respuesta

8

Con git, no hay motivo para que los desarrolladores trabajen en una sucursal por separado o se burlen de las vistas. Haga que los diseñadores y desarrolladores trabajen en la misma rama, en la misma base de código. Cuando se realiza una vista (o al menos se mejora y no falla), haga que el diseñador se comprometa y los envíe a un repositorio principal. Lo mismo es cierto para los desarrolladores: cuando un cambio local está "hecho", pídales que lo hagan y lo presionen.

Antes de empujar, cada lado necesita tirar (para asegurar que no haya conflictos). Si los dos grupos están trabajando en piezas de código mutuamente exclusivas (archivos separados o partes separadas de los mismos archivos), la extracción simplemente actualizará la copia local y todo funcionará bien.

Con esto, ambos lados siempre están viendo la base de códigos más actualizada y contribuyen directamente al objetivo final exacto, viéndolo evolucionar.

3

Git no es mágico. No permite que sus diseñadores usen código para que los desarrolladores escriban activamente . Los desarrolladores todavía tienen que escribir, probar y confirmar su código, y presionarlo en algún lugar donde los desarrolladores puedan sacarlo.

Normalmente tendrá un repositorio "simple" en el que todas las partes envíen su trabajo cuando esté listo para ser compartido. Todos los demás retiran ese trabajo. Podría ser el trabajo de los diseñadores para tirar el trabajo del desarrollador y fusionar la rama dev en la rama de interfaz de usuario, por ejemplo:

git checkout ui 
git fetch 
git merge dev 
4

Git es tan fácil de usar, theres ninguna razón todo el mundo no debería tener su propia rama de trabajo fuera de.Demonios, esa es una de las razones principales para usar un sistema de control de versiones. En Git, los compromisos son baratos.

Normalmente, tenemos un maestro, y cualquiera que esté trabajando en actualizaciones o funciones se ramificará desde el maestro y ramificará una rama si es necesario, entonces un maestro de lanzamiento (alguien como yo) se encargará de fusionarlos todos abajo, buscando conflictos, probando el lanzamiento y fusionando de nuevo a maestro.

A medida que trabajas en ella, otros pueden recibir los cambios haciendo una búsqueda/extracción contra tu sucursal para obtener los cambios.

0

Si realmente desea exigir cosas como la rama y la ruta derechos, sugiero usted la comprobación gitolite

Esto le permitirá gestionar el acceso a todo tipo de niveles.

Cuestiones relacionadas