En aquest tema, aprendrem com revertir commits en Git. Revertir un commit és una operació que crea un nou commit que desfà els canvis introduïts per un commit anterior. Aquesta és una tècnica útil per desfer canvis sense alterar l'historial de commits.

Objectius

  • Entendre què significa revertir un commit.
  • Aprendre a utilitzar la comanda git revert.
  • Veure exemples pràctics de com revertir commits.
  • Conèixer les diferències entre git revert i altres comandes com git reset.

Què és Revertir un Commit?

Revertir un commit crea un nou commit que desfà els canvis introduïts per un commit anterior. Això és útil quan vols desfer canvis sense eliminar l'historial de commits. A diferència de git reset, que pot alterar l'historial, git revert manté l'historial intacte.

Comanda git revert

La comanda git revert s'utilitza per crear un nou commit que desfà els canvis d'un commit específic. La sintaxi bàsica és:

git revert <commit-hash>

On <commit-hash> és l'identificador del commit que vols revertir.

Exemple Pràctic

Suposem que tenim un historial de commits com el següent:

commit 3a1f4e2 (HEAD -> main)
Author: Joan
Date:   Mon Oct 2 10:00:00 2023 +0200

    Afegit fitxer de configuració

commit 2b3c4d5
Author: Maria
Date:   Sun Oct 1 15:00:00 2023 +0200

    Corregit error en el codi

commit 1a2b3c4
Author: Pere
Date:   Sat Sep 30 12:00:00 2023 +0200

    Inicial commit

Si volem revertir el commit 2b3c4d5, utilitzarem la comanda git revert:

git revert 2b3c4d5

Això crearà un nou commit que desfà els canvis introduïts pel commit 2b3c4d5.

Explicació del Codi

Quan executes git revert 2b3c4d5, Git farà el següent:

  1. Crear un nou commit que desfà els canvis introduïts pel commit 2b3c4d5.
  2. Obrir l'editor de text per permetre't editar el missatge del nou commit. Per defecte, el missatge serà "Revert 'Corregit error en el codi'".

Després de guardar i tancar l'editor, l'historial de commits serà:

commit 4d5e6f7 (HEAD -> main)
Author: Joan
Date:   Mon Oct 2 10:05:00 2023 +0200

    Revert "Corregit error en el codi"

commit 3a1f4e2
Author: Joan
Date:   Mon Oct 2 10:00:00 2023 +0200

    Afegit fitxer de configuració

commit 2b3c4d5
Author: Maria
Date:   Sun Oct 1 15:00:00 2023 +0200

    Corregit error en el codi

commit 1a2b3c4
Author: Pere
Date:   Sat Sep 30 12:00:00 2023 +0200

    Inicial commit

Diferències entre git revert i git reset

Comanda Descripció Alteració de l'Historial
git revert Crea un nou commit que desfà els canvis d'un commit anterior. No
git reset Mou el punter de la branca a un commit anterior, eliminant commits posteriors.

Exercici Pràctic

  1. Crea un nou repositori de Git.
  2. Afegeix alguns fitxers i fes diversos commits.
  3. Utilitza git revert per desfer un dels commits intermedis.
  4. Observa l'historial de commits per veure el nou commit de revert.

Solució

# Pas 1: Crear un nou repositori
git init meu-repositori
cd meu-repositori

# Pas 2: Afegir fitxers i fer commits
echo "Hola món" > fitxer1.txt
git add fitxer1.txt
git commit -m "Afegit fitxer1.txt"

echo "Adéu món" > fitxer2.txt
git add fitxer2.txt
git commit -m "Afegit fitxer2.txt"

# Pas 3: Revertir el segon commit
git revert HEAD~1

# Pas 4: Veure l'historial de commits
git log --oneline

Resum

En aquesta secció, hem après com revertir commits utilitzant la comanda git revert. Hem vist com aquesta comanda crea un nou commit que desfà els canvis d'un commit anterior, mantenint l'historial de commits intacte. També hem comparat git revert amb git reset per entendre les seves diferències.

Amb aquesta tècnica, pots desfer canvis de manera segura i mantenir un historial de commits clar 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