Version-Control para aplicaciones web queueborativas (¿entiende Git?)

Nuestro equipo (alnetworkingedor de 5 personas) construye aplicaciones web de una manera bastante caótica. Hay un server local y un server de producción. Cualquier desarrollo se lleva a cabo en el server local y luego se carga en el server de producción (cuando lo consideran "hecho"). Esto generalmente termina desagradable. Alguien está networkingiseñando templates, alguien está cambiando la funcionalidad central y alguien construye una nueva function que depende de algo que está influenciado por los cambios en la funcionalidad central, al mismo time. Antes de que las personas puedan comenzar a trabajar, se aseguran de que los files que necesitan cambiar sean "gratuitos", ya que se accede directamente a los files y se sobrescribirán. Al tener personas con diferentes conocimientos para cada disciplina, generalmente necesito verificar todos los cambios realizados para asegurar que nada se rompa (regresión). Esto es horrible y difícil de queueborar. Estoy pensando en una forma de cambiar este desorderado flujo de trabajo.

Leí que Git se puede usar para administrar aplicaciones web queueborativas, pero no sé cómo configurarlo. Las sucursales en las máquinas locales simplemente no funcionarán (cada compañero de trabajo necesitaría tener su propio server web, server de aplicaciones, server de database y las mismas configuraciones). Varias sucursales en el mismo server (básicamente, cada desarrollador tiene su propia twig?) Requieren una forma de confirmar y fusionar los cambios con solo presionar un button. ¿Es eso posible sin tener que hacer todo manualmente?

Al final, necesitamos un sistema que nos permita:

  • desarrollar sin dependencies concurrentes (entornos separados)
  • revisar / aprobar confirmaciones
  • fusionar automáticamente confirmaciones aprobadas
  • distribuye automáticamente la última versión (force pull)
  • revertir cambios / remover

Me imagino que esto funciona con el código fuente donde no hay nada que compartir salvo el código y el comstackdor. Pero las aplicaciones web que dependen mucho de su entorno, parecen ser mucho más difíciles. Pero, de nuevo: tal vez aún no entiendo todo. 🙁

Tener un entorno local para cada desarrollador es una necesidad. Eche un vistazo a la guía que escribimos sobre desarrollo e implementación con sucursales:

http://guides.beanstalkapp.com/version-control/branching-best-practices.html

Espero que lo encuentres útil.