Configuración de Git para serveres web locales y remotos. ¿Donde empezar?

Soy parte de un equipo de 10 miembros y construimos sitios web (docenas de ellos, ~ 9 gb cada uno). Como la empresa está pasada de moda, no usamos git ni ningún tipo de control de versión, sino que tenemos 3 types diferentes de serveres (generalmente, el server de Windows):

  • server local (en una sala cercana a nuestra oficina) para la testing, una vez que estamos satisfechos con las testings locales, llevamos los cambios a través de ftp en un
  • server de vista previa (remoto), utilizado por el cliente para validar nuestras nuevas funciones. Si el cliente está saturado, presionamos los cambios a través de ftp en el
  • server oficial (remoto), que es utilizado por el consumidor

Como se puede ver, de hecho estamos usando twigs de 3 styles: testing, vista previa y maestra.

Pero no tenemos un server para cada uno de nosotros:

Accedemos al server local (carpetas) y modificamos directamente los files, y a través del browser vemos los cambios. Por lo general, no accedemos al mismo file al mismo time, así no tenemos conflictos.

Sé que deberíamos ejecutar el server en nuestra computadora personal, hacer los cambios que necesitamos y luego presionarlos en la vista previa remota y en los serveres oficiales … Pero no podemos hacerlo de esta manera, porque ya tenemos 7 estaciones de trabajo diferentes (en el habitación cerca de nuestra oficina) que ejecuta todos los sitios web locales.

Tal vez deberíamos: no cambiar la forma en que trabajamos en local, configurar git en todo el server de modo que: promocionamos los cambios desde el server local hasta la vista previa y el server oficial .

Entonces, ¿cómo puedo configurar git para nuestras necesidades? ¿Hay algún tipo de estrategias que debería estudiar?

Debería echar un vistazo a un model de bifurcación exitoso : como mencionó, tendrá 3 sucursales (testing, vista previa, principal) que administraría desde su estación de trabajo de testing (fusionando los cambios en preview y master ).

A continuación, presionará en el control remoto diferente, es decir, deberá definir uno para cada server que desee publicar. Cada server revisará la twig relevante como git checkout -b preview origin/preview por ejemplo).

Ahora el truco es que no puede presionar a la copy de trabajo (la twig que ha revisado, que es la preview en el ejemplo anterior). Necesitas empujar hacia el origin/preview lugar. En el server de vista previa, debe realizar una git rebase . Además, puede crear un git rebase posterior a la actualización en los serveres remotos que realice git rebase en la actualización entrante.

En cuanto a trabajar todos juntos en el mismo set de files, bueno, esto requiere un paso adicional a la coordinación habitual que solía tener: los desarrolladores deben tener cuidado de comprometer solo sus propios cambios. Además, no puede trabajar en una sucursal separada como se propone en el flujo de trabajo, ya que usted ramifica todo el proyecto. Estás condenado a permanecer en la twig de test .