Existen varias formas posibles de trabajar en equipo con Git, acá vamos a presentar una que es bastante simple pero también muy poderosa, normalmente conocida como GitHub flow o feature branch flow.

GitHub flow

Básicamente, se guia por tres principios:

  1. El código que está en la rama master siempre tiene que funcionar.
  2. Para comenzar una nueva funcionalidad, corregir un bug o cualquier tarea, se crea una rama nueva partiendo de master. El nombre de esta rama debe ser descriptivo: busqueda-estudiante-por-legajo, error-campos-numericos, refactor-hibernate-stores.
  3. Concluido el trabajo, se crea un pull request para integrar los cambios a master.

Adicionalmente, podríamos configurar un servidor de integración continua para que despliegue nuestra aplicación bajo ciertas circunstancias. Por ejemplo:

  • Cuando haya cambios nuevos en master, publicar la aplicación en el entorno de ensayo (staging).
  • Cuando haya un tag nuevo, publicar la aplicación en el entorno de producción.
  • Todos los lunes a las 9:00hs, publicar lo que haya en master en el entorno de producción.

Resumen de trabajo

Asumiendo que el backlog ya está completo, estos son los pasos que haría para ponerme a trabajar en una nueva funcionalidad:

  1. Elijo la user story en la que me voy a poner a trabajar (debería ser la más prioritaria).
  2. Me asigno la issue para que el resto del equipo sepa que lo voy a hacer yo.
  3. Muevo la issue a la columna En progreso.
  4. En mi computadora, creo la rama correspondiente, por ejemplo: 7-momento-de-crisis o 23-mejorar-vista-alumno. Es buena práctica comenzar el nombre con el número de la issue asociada.
  5. Trabajo. Si en el medio se mergea algún pull request, conviene bajar los cambios de master a mi rama.
  6. Cuando terminé, hago un push y un pull request.
  7. Alguien mira mi trabajo, me pide cambios, los resuelvo y vuelvo a subir (el pull request sigue vivo y los cambios nuevos se reflejan automáticamente).
  8. Mi trabajo se aprueba y se integra en master.
  9. En mi computadora, vuelvo a master y me bajo los cambios nuevos, que incluyen lo que hice yo.
  10. Vuelvo al punto 1.

Recursos adicionales