Git + flujo de trabajo de alojamiento compartido, ideas?

Estuve reflexionando sobre esto durante algunas semanas en preparación, pero como en un patrón de espera.

Esto es lo que estoy trabajando: Entorno de desarrollo de Windows (Sé que sé. El precio es correcto perdiendo la bocina.) Desarrollar directorys fuera de trabajo en una unidad compartida Cargar cambios en el sitio de testing FTP, enviar para QA Una vez que se complete la QA, copyr files al directory listo para la producción en la unidad compartida Cargar en el sitio en vivo Ambos entornos Test + Live se encuentran en hosts compartidos separados sin acceso al shell.

Eso significa que estoy trabajando con 4 (sí, cuatro) directorys separados.

Tengo una nueva virtualbox que ejecuta Ubuntu en una installation LAMP y he copydo mi directory de producción con la esperanza de crear un repository git con el que pueda comprometerme. A partir de ahí, me gustaría poder comprometerme con una serie de twigs de características ubicadas en la parte superior de una twig de desarrollo. Cuando esté listo para QA, necesitaría sincronizar mi twig de desarrollo con el server de testing. Cuando se complete el QA, necesitaría fusionar el desarrollo en la twig de producción y luego sincronizar la twig de producción con el server en vivo.

En este momento, solo tengo un directory de producción en funcionamiento en la caja virtual. Necesito inicializar un repository de git y poder verificarlo en mi máquina local, confirmando / presionando los cambios según sea necesario. Simplemente no sé cuál sería la mejor forma de fusionar / sincronizar / cargar, dada la situación del host compartido.

Cualquier idea sería muy apreciada. Estoy empezando a confundirme incluso pensando en ello.

Echa un vistazo a este enlace para ver un model de ramificación git muy útil:

http://nvie.com/posts/a-successful-git-branching-model/

En su caso, la twig de "liberación" sería la twig de control de calidad y su twig principal sería la twig que se lanzaría en vivo.

Una vez que implemente eso, puede configurar un git hook para enviar automáticamente los contenidos del directory a los serveres en vivo utilizando ftp, ssh o cualquier otro protocolo que elija.

Usa algo así como team city para hacer artefactos. Luego deployment de script. Sería una historia más fácil si estuvieras haciendo algo en Ruby u otro lenguaje interpretado, ya que un deployment de una sucursal sería tu deployment.

Para la administración de sucursales, revisa git flow.

Espero que esto ayude.