Introducció

El rebasing és una operació avançada de Git que permet reescriure l'historial de commits d'una branca. És una eina poderosa que pot ajudar a mantenir un historial de commits net i lineal, però també pot ser perillosa si no s'utilitza correctament. En aquesta secció, aprendrem què és el rebasing, com utilitzar-lo i quins són els seus avantatges i desavantatges.

Què és el Rebasing?

El rebasing és el procés de moure o combinar una seqüència de commits a una nova base commit. En lloc de crear un nou commit de fusió quan es fusionen branques, el rebasing reescriu l'historial de commits per aplicar els canvis d'una branca sobre una altra.

Avantatges del Rebasing

  • Historial Net i Lineal: El rebasing ajuda a mantenir un historial de commits net i lineal, el que facilita la lectura i la comprensió de l'historial del projecte.
  • Evita Commits de Fusió Innecessaris: En lloc de crear un nou commit de fusió, el rebasing aplica els canvis directament sobre la branca base, evitant commits de fusió innecessaris.

Desavantatges del Rebasing

  • Risc de Pèrdua de Dades: Si no es fa correctament, el rebasing pot provocar la pèrdua de dades. És important assegurar-se que no es perden commits importants durant el procés.
  • Conflictes de Fusió: El rebasing pot generar conflictes de fusió que han de ser resolts manualment.

Com Utilitzar el Rebasing

Rebasing Interactiu

El rebasing interactiu és una variant del rebasing que permet modificar l'historial de commits de manera més detallada. Amb el rebasing interactiu, es poden editar, reordenar, combinar o eliminar commits.

Exemple de Rebasing Interactiu

  1. Inicia el Rebasing Interactiu:

    git rebase -i HEAD~3
    

    Aquest comandament obrirà un editor de text amb els últims 3 commits.

  2. Modifica l'Historial de Commits: L'editor de text mostrarà una llista de commits amb opcions per modificar-los. Per exemple:

    pick 1234567 Commit 1
    pick 89abcdef Commit 2
    pick fedcba98 Commit 3
    

    Pots canviar pick per edit, squash, reword, etc.

  3. Guarda i Tanca l'Editor: Després de fer els canvis desitjats, guarda i tanca l'editor. Git aplicarà els canvis segons les instruccions donades.

Rebasing d'una Branca

Per rebasear una branca sobre una altra, utilitza el següent comandament:

git checkout feature-branch
git rebase main

Aquest comandament rebasearà la branca feature-branch sobre la branca main.

Resolució de Conflictes durant el Rebasing

Durant el procés de rebasing, poden sorgir conflictes de fusió. Per resoldre'ls:

  1. Identifica els Fitxers en Conflicte: Git t'informarà dels fitxers que tenen conflictes.

  2. Edita els Fitxers en Conflicte: Obre els fitxers en conflicte i resol els conflictes manualment.

  3. Marca els Conflictes com a Resolts: Després de resoldre els conflictes, marca els fitxers com a resolts:

    git add <fitxer>
    
  4. Continua el Rebasing: Un cop resolts tots els conflictes, continua el rebasing:

    git rebase --continue
    

Exercicis Pràctics

Exercici 1: Rebasing d'una Branca

  1. Crea una nova branca i afegeix alguns commits:

    git checkout -b feature-branch
    echo "Canvi 1" > fitxer.txt
    git add fitxer.txt
    git commit -m "Commit 1"
    echo "Canvi 2" >> fitxer.txt
    git add fitxer.txt
    git commit -m "Commit 2"
    
  2. Torna a la branca principal i afegeix un commit:

    git checkout main
    echo "Canvi en main" > fitxer.txt
    git add fitxer.txt
    git commit -m "Commit en main"
    
  3. Rebasea la branca feature-branch sobre main:

    git checkout feature-branch
    git rebase main
    

Exercici 2: Rebasing Interactiu

  1. Inicia un rebasing interactiu per als últims 3 commits:

    git rebase -i HEAD~3
    
  2. Canvia l'ordre dels commits i combina dos commits en un.

  3. Guarda i tanca l'editor per aplicar els canvis.

Resum

El rebasing és una eina poderosa per mantenir un historial de commits net i lineal. Tot i que pot ser complex i arriscat, amb una comprensió adequada i pràctica, es pot utilitzar de manera efectiva per millorar la qualitat de l'historial del projecte. Recorda sempre fer còpies de seguretat abans de realitzar operacions de rebasing i utilitzar-lo amb precaució.

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