El flux de treball Git Flow és una metodologia de gestió de branques que facilita l'organització i el desenvolupament de projectes de programari. Creat per Vincent Driessen, Git Flow defineix un conjunt de regles per a la creació, fusió i eliminació de branques, permetent un desenvolupament més estructurat i col·laboratiu.

Conceptes Clau de Git Flow

  1. Branca main: La branca principal que conté el codi en producció.
  2. Branca develop: La branca de desenvolupament on s'integren les noves funcionalitats abans de ser fusionades a main.
  3. Branques de Funcionalitat (feature): Branques temporals creades per desenvolupar noves funcionalitats.
  4. Branques de Releasing (release): Branques temporals per preparar una nova versió de producció.
  5. Branques de Hotfix (hotfix): Branques temporals per corregir errors crítics en producció.

Flux de Treball

  1. Creació de la Branca develop

Després d'inicialitzar el repositori, es crea la branca develop a partir de main:

git checkout -b develop main

  1. Creació de Branques de Funcionalitat

Les branques de funcionalitat es creen a partir de develop:

git checkout -b feature/nova-funcionalitat develop

Desenvolupa la funcionalitat i fes commits regulars:

git add .
git commit -m "Implementa nova funcionalitat"

Quan la funcionalitat està completa, es fusiona de nou a develop:

git checkout develop
git merge feature/nova-funcionalitat
git branch -d feature/nova-funcionalitat

  1. Creació de Branques de Releasing

Quan es vol preparar una nova versió per a producció, es crea una branca de releasing a partir de develop:

git checkout -b release/v1.0 develop

En aquesta branca es fan els ajustos finals, com la documentació i la correcció de bugs menors. Quan està llesta, es fusiona a main i develop:

git checkout main
git merge release/v1.0
git tag -a v1.0 -m "Versió 1.0"

git checkout develop
git merge release/v1.0
git branch -d release/v1.0

  1. Creació de Branques de Hotfix

Si es detecta un error crític en producció, es crea una branca de hotfix a partir de main:

git checkout -b hotfix/correccio-error main

Després de corregir l'error, es fusiona a main i develop:

git checkout main
git merge hotfix/correccio-error
git tag -a v1.0.1 -m "Correcció d'error crític"

git checkout develop
git merge hotfix/correccio-error
git branch -d hotfix/correccio-error

Exemple Pràctic

Creació d'una Nova Funcionalitat

  1. Crear la branca de funcionalitat:

    git checkout -b feature/nova-funcionalitat develop
    
  2. Desenvolupar la funcionalitat:

    # Editar fitxers, afegir codi, etc.
    git add .
    git commit -m "Implementa nova funcionalitat"
    
  3. Fusionar la funcionalitat a develop:

    git checkout develop
    git merge feature/nova-funcionalitat
    git branch -d feature/nova-funcionalitat
    

Preparació d'una Nova Versió

  1. Crear la branca de releasing:

    git checkout -b release/v1.0 develop
    
  2. Fer ajustos finals:

    # Editar fitxers, corregir bugs menors, etc.
    git add .
    git commit -m "Preparació per a la versió 1.0"
    
  3. Fusionar a main i develop:

    git checkout main
    git merge release/v1.0
    git tag -a v1.0 -m "Versió 1.0"
    
    git checkout develop
    git merge release/v1.0
    git branch -d release/v1.0
    

Correcció d'un Error Crític

  1. Crear la branca de hotfix:

    git checkout -b hotfix/correccio-error main
    
  2. Corregir l'error:

    # Editar fitxers, corregir l'error, etc.
    git add .
    git commit -m "Correcció d'error crític"
    
  3. Fusionar a main i develop:

    git checkout main
    git merge hotfix/correccio-error
    git tag -a v1.0.1 -m "Correcció d'error crític"
    
    git checkout develop
    git merge hotfix/correccio-error
    git branch -d hotfix/correccio-error
    

Exercici Pràctic

Objectiu

Implementar una nova funcionalitat i preparar una nova versió seguint el flux de treball Git Flow.

Passos

  1. Crear una branca de funcionalitat anomenada feature/nova-funcionalitat.
  2. Desenvolupar la funcionalitat i fer un commit.
  3. Fusionar la funcionalitat a develop.
  4. Crear una branca de releasing anomenada release/v1.0.
  5. Fer ajustos finals i fer un commit.
  6. Fusionar la branca de releasing a main i develop.

Solució

# Pas 1: Crear una branca de funcionalitat
git checkout -b feature/nova-funcionalitat develop

# Pas 2: Desenvolupar la funcionalitat
# Editar fitxers, afegir codi, etc.
git add .
git commit -m "Implementa nova funcionalitat"

# Pas 3: Fusionar la funcionalitat a develop
git checkout develop
git merge feature/nova-funcionalitat
git branch -d feature/nova-funcionalitat

# Pas 4: Crear una branca de releasing
git checkout -b release/v1.0 develop

# Pas 5: Fer ajustos finals
# Editar fitxers, corregir bugs menors, etc.
git add .
git commit -m "Preparació per a la versió 1.0"

# Pas 6: Fusionar a main i develop
git checkout main
git merge release/v1.0
git tag -a v1.0 -m "Versió 1.0"

git checkout develop
git merge release/v1.0
git branch -d release/v1.0

Resum

El flux de treball Git Flow proporciona una estructura clara per gestionar el desenvolupament de programari amb Git. Utilitzant branques dedicades per a funcionalitats, releasing i hotfixes, es pot mantenir un codi net i organitzat, facilitant la col·laboració i la integració contínua. Practicar aquest flux de treball ajudarà a millorar la qualitat del codi i la productivitat de l'equip.

Dominar Git: De Principiant a Avançat

Mòdul 1: Introducció a Git

Mòdul 2: Operacions Bàsiques de Git

Mòdul 3: Branques i Fusió

Mòdul 4: Treballant amb Repositoris Remots

Mòdul 5: Operacions Avançades de Git

Mòdul 6: Eines i Tècniques de Git

Mòdul 7: Estratègies de Col·laboració i Flux de Treball

Mòdul 8: Millors Pràctiques i Consells de Git

Mòdul 9: Resolució de Problemes i Depuració

Mòdul 10: Git en el Món Real

© Copyright 2024. Tots els drets reservats