Git para desarrollo web (método de procedimiento)

Me pregunto cuál es su método de procedimiento de desarrollo web utilizando Git?

  1. Cuando termina de codificar, ¿simplemente sobrescribe los files en el FTP al server en vivo?

  2. ¿Cómo maneja git el número de versión del mismo proyecto? como v1, v1.5, etc.

  3. Digamos que 2 personas que trabajan en el proyecto a nivel local en el trabajo (misma oficina), ¿cómo trabajas juntas? ¿Debo seguir pidiéndoles que me proporcionen una fuente preparada (¿save en USB?) Para fusionarla.

  4. ¿Pueden dos personas trabajar en el mismo proyecto en el mismo server? ¿No sería esto más fácil que la pregunta 3?

La idea detrás de git es que en realidad se encarga de todo eso por ti.

  1. Cuando escribe código, compromete su código y puede enviarlo al server. Git realiza un seguimiento de los cambios por lo que es fácil volver a una versión anterior.
  2. Realiza un seguimiento de las versiones de los files a medida que cambian para que pueda deshacer fácilmente cualquier cambio realizado en el pasado, consulte las tags para get más detalles.
  3. NO. Puede enviar sus cambios al server y la otra persona puede realizar estos cambios. Algunas fusiones tendrán que ocurrir, pero es bastante fácil con git. No es necesario transferir files de un desarrollador a otro. La ramificación y la fusión se discuten aquí .
  4. Sí. Esa es la idea.

Para comprender mejor los conceptos detrás de un sistema de control de versiones distribuidas, puede leer este tutorial de Joel Spolsky . Se trata de Mercurial, pero encontrará los conceptos muy similares y este es probablemente el mejor tutorial escrito sobre este tema en la web.

Así es como lo haría.

Cada desarrollador tiene su propio repository git para desarrollar su código. Usted como fusión tiene un tercer repository, y este repository tiene twigs separadas para cada desarrollador, para su sistema de testing y su sitio de producción.

Sus desarrolladores pueden enviar sus cambios a usted, o puede convertir sus cambios en twigs específicamente para ellos. Mantiene una twig que controla que contiene el código fusionado en un estado para probar. Puede usar git-cherry-pick, o tal vez simplemente git-merge para llevar sus cambios a su twig de testing si probara cosas (y posiblemente haga sus propios cambios, o informe de fallos de incendios a los desarrollos y vuelva a incorporar sus cambios ) Cuando estés contento, te unirás a una sucursal de "producción". Esto normalmente se deriva inicialmente de la twig de testing, pero con los cambios necesarios para el sistema en vivo (siempre encuentro que hay algo, incluso si es solo el nombre de la database y la contraseña).

Normalmente uso un git hook con algún código que comtesting en qué twig estoy y luego uso rsync sobre ssh para enviar el código a mi sitio de producción.

#!/bin/bash branch=$(git branch | sed -ns/^\*\ //p) version=$(git describe --tags) cd "$git rev-parse --show cdup)" if [ "$branch" == "production" ]; then echo "?php echo '$version';?>" > web/version.inc rsync -axq --delete web/ site:public_html/ fi 

google "git flow", le muestra una forma de administrar el trabajo y liberarlo cuando lo desee.

Para implementar a través de una twig, ver:

Implementar un proyecto usando Git push