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 comgit 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:
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
:
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:
- Crear un nou commit que desfà els canvis introduïts pel commit
2b3c4d5
. - 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. | Sí |
Exercici Pràctic
- Crea un nou repositori de Git.
- Afegeix alguns fitxers i fes diversos commits.
- Utilitza
git revert
per desfer un dels commits intermedis. - 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
- Creant un Repositori
- Clonant un Repositori
- Flux de Treball Bàsic de Git
- Preparant i Cometent Canvis
- Veient l'Historial de Commits
Mòdul 3: Branques i Fusió
- Entenent les Branques
- Creant i Canviant de Branques
- Fusionant Branques
- Resolent Conflictes de Fusió
- Gestió de Branques
Mòdul 4: Treballant amb Repositoris Remots
- Entenent els Repositoris Remots
- Afegint un Repositori Remot
- Recuperant i Traient Canvis
- Empenyent Canvis
- Seguint Branques
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
- Forking i Pull Requests
- Revisions de Codi amb Git
- Flux de Treball Git Flow
- GitHub Flow
- Integració Contínua amb Git
Mòdul 8: Millors Pràctiques i Consells de Git
- Escrivint Bons Missatges de Commit
- Mantenint un Historial Netejat
- Ignorant Fitxers amb .gitignore
- Millors Pràctiques de Seguretat
- Consells de Rendiment
Mòdul 9: Resolució de Problemes i Depuració
- Problemes Comuns de Git
- Desfent Canvis
- Recuperant Commits Perduts
- Tractant amb Repositoris Corruptes
- Tècniques Avançades de Depuració