La fusió de branques és una de les operacions més comunes i importants en Git. Permet combinar els canvis de diferents branques en una sola, facilitant la col·laboració i la integració de noves funcionalitats en el codi principal.

Conceptes Clau

  • Branca: Una línia de desenvolupament independent.
  • Fusió (Merge): El procés de combinar els canvis de dues branques en una sola.
  • Branca de Destí: La branca en la qual es volen integrar els canvis.
  • Branca d'Origen: La branca que conté els canvis que es volen integrar.

Tipus de Fusió

  1. Fusió Fast-Forward: Es produeix quan la branca de destí no té cap commit nou respecte a la branca d'origen. En aquest cas, Git simplement mou el punter de la branca de destí cap endavant.
  2. Fusió Automàtica: Es produeix quan hi ha commits nous en ambdues branques, però Git pot combinar els canvis automàticament.
  3. Fusió amb Conflictes: Es produeix quan hi ha canvis conflictius en ambdues branques que Git no pot combinar automàticament. Requereix intervenció manual per resoldre els conflictes.

Exemple Pràctic

  1. Preparació

Suposem que tenim dues branques: main i feature. Volem fusionar els canvis de feature a main.

# Assegura't d'estar a la branca de destí
git checkout main

# Actualitza la branca de destí amb els últims canvis
git pull origin main

  1. Fusió Fast-Forward

Si main no té commits nous respecte a feature, la fusió serà un fast-forward.

# Fusió Fast-Forward
git merge feature

  1. Fusió Automàtica

Si ambdues branques tenen commits nous, Git intentarà una fusió automàtica.

# Fusió Automàtica
git merge feature

  1. Fusió amb Conflictes

Si hi ha conflictes, Git mostrarà un missatge indicant els fitxers conflictius.

# Fusió amb Conflictes
git merge feature

Resolució de Conflictes

  1. Obre els fitxers conflictius i resol els conflictes manualment.
  2. Marca els conflictes com a resolts.
# Marca els conflictes com a resolts
git add <fitxer_conflictiu>

# Completa la fusió
git commit

Exercici Pràctic

Objectiu

Fusionar la branca feature a main i resoldre qualsevol conflicte que pugui sorgir.

Passos

  1. Crea un nou repositori i afegeix un fitxer README.md a la branca main.
  2. Crea una nova branca feature i afegeix una línia al README.md.
  3. Torna a la branca main i afegeix una altra línia al README.md.
  4. Intenta fusionar feature a main i resol els conflictes.

Solució

# Pas 1: Crea un nou repositori
git init my-repo
cd my-repo
echo "Projecte Git" > README.md
git add README.md
git commit -m "Afegir README.md"

# Pas 2: Crea la branca feature i afegeix una línia
git checkout -b feature
echo "Aquesta és la branca feature." >> README.md
git add README.md
git commit -m "Afegir línia a la branca feature"

# Pas 3: Torna a la branca main i afegeix una altra línia
git checkout main
echo "Aquesta és la branca main." >> README.md
git add README.md
git commit -m "Afegir línia a la branca main"

# Pas 4: Intenta fusionar feature a main
git merge feature
# Resol els conflictes manualment
# Obre README.md i resol els conflictes
# Marca els conflictes com a resolts
git add README.md
# Completa la fusió
git commit

Resum

La fusió de branques és una operació essencial en Git que permet combinar canvis de diferents línies de desenvolupament. Hi ha diferents tipus de fusió, incloent fast-forward, automàtica i amb conflictes. És important saber com resoldre conflictes per mantenir un historial de commits net i coherent.

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