Skip to content

ADR 6 ‐ Uso de ramas en Git

yagonavajas edited this page Apr 8, 2024 · 1 revision

Decisión

Hemos decidido utilizar un sistema simple de ramas, contando tan solo con una rama master, una rama develop y una rama por cada integrante del grupo.

Justificación

Usando este sistema se simplifica sobremanera la utilización de la ramas. La metodología de trabajo será la siguiente, cada integrante trabajará en su rama una feature o arreglos que sean convenientes y cuando haya acabado subirá todos los cambios a la rama develop. De esta manera la rama develop se mantendrá actualiza prácticamente en todo momento. Cuando otro integrante quiera trabajar, baja los cambio de develop a su rama. Esto evita entrar en merge hell y ayuda a mantener todas las ramas al día. Por ultimo, la rama master solo será utilizada para los despliegues y cuando haya que solucionar fallos muy concretos relacionados con el mismo.

Inconvenientes

Al simplificar tanto el sistema se podría perder un poco la esencia de trabajar con ramas y con ello las ventajas que esto te trae. Por ejemplo, se puede dificultar la estabilidad de la rama principal o pueden existir limitaciones al dividir en partes el proyecto ya que existe una rama por persona y no por implementación.

Alternativas consideradas

  • Uso de una rama por feature o implementación: Al igual que en el anterior trabajo en grupo, sopesamos utilizar una rama por cada nueva implementación a realizar. Sin embargo, para un proyecto con poca gente esto solo dificultaría el uso de Git para un equipo sin mucha experiencia trabajando con esta tecnología, al tener que borrar ramas de manera sistemática, pudiendo borrar información sensible sin querer
  • Uso de Trunk Based Development (TBD): Debido a su dificultad y la necesidad de comunicación y coordinación, hemos decidido simplificar al máximo y no explorar formas de trabajo por encima de nuestras capacidades actuales.