Gitflow
O fluxo de traballo con GitFlow axúdanos a organizar o repositorio Git e o noso traballo:
- Establece un convenio de nomes para as nosas ramas (branches) que permite que todos os membros do equipo saiban que é cada cousa.
- Establece unhas regras comúns a hora de mover información entre ramas.
Estrutura de ramas
En canto a política de ramas, GitFlow propón:
maincomo rama principal do proxecto: contén o código de produción. Nunca se debe traballar sobre ela. Desta rama non nace ningunha rama excepto oshotfix.hotfixson as ramas que utilizaremos para corrixir erros críticos encontrados en produción: levan o prefixohostfix/seguido do nome da rama (hotfix/fix-form-submit). Nacen sempre da ramamaine fusiónanse contra amasteredevelop, co obxectivo de poñer ohotfixen produción e que tamén este dispoñible para novas versión da rama de desenvolvemento.
developcomo rama de desenvolvemento: nunca se traballará sobre ela. Desta rama saen todas as ramas defeature. A ramadevelopfusionarase coamaincando vaiamos a despregar o proxecto a través das releases.featureson as ramas sobre as que traballaremos normalmente: levan por defecto o prefixofeature/seguido do nome da rama (feature/add-avatar). Nacen sempre desde a ramadevelope morren cando son fusionadas con esta.bugfixson ramas que se utilizan para corrixir erros que aínda non chegaron a produción. Levan o prefixobugfix/seguido do nome da rama (bugfix/fix-wrong-logout-link). Nacen sempre da ramadevelop.realeaseson as ramas que utilizaremos para crear novas versións para despregar a produción. Usadas para preparar unha nova versión estable. Créanse a partir dedevelopcando se decide que esa versión xa está lista. Aquí só se fan correccións menores, optimizacións e tarefas finais como versións e documentación. Unha vez rematada, fusiónase tanto enmaincomo endevelop. Exemplo :release/v1.2.0.

Merge Resquest
Un merge request é unha petición formal para fusionar unha rama con outra dentro dun repositorio Git, normalmente como parte dun proceso de revisión colaborativa.
Este permite:
- Solicitar a fusión dunha rama (por exemplo,
feature/login) dentro doutra (por exemplo,develop). - Iniciar un proceso de revisión de código por parte doutros membros do equipo.
- Ver os cambios introducidos, discutir sobre eles e facer comentarios.
- Executar probas automáticas (CI/CD) antes de aceptar os cambios.
Exemplos con GitFlow:
- Cando se remata unha nova funcionalidade (
feature/pago-con-tarxeta), créase unmerge requestpara integrala endevelop. Antes de facer omerge, o equipo pode revisar o código e comprobar que todo funciona correctamente. - Unha vez lista unha versión de lanzamento (
release/v1.3.0), faise unmerge requestcara amainpara publicar a versión, e tamén cara adeveloppara incorporar as últimas correccións.