L'acció revert sols permet desfer un commit a la vegada.
En cas de voler desfer múltiples commits,
es pot aplicar la comanda revert de forma successiva
a cada commit que es vol desfer amb la opció --no-commit.
Aquest procés posarà el repositori en un estat REVERTING
i afegira els canvis a l'Àrea de Preparació (Staging Area).
En aquest punt, es poden revertir més commits
o finalitzar el procés amb git revert --continue.
Aquesta acció pot generar conflictes si els canvis que es volen desfer
han estat modificats posteriorment.
En aquest cas, passarem a l'estat REVERTING i caldrà resoldre els conflictes
manualment, de la mateixa manera que es fa en una fusió de branques (merge).
Exemple: Resolució de conflictes en git revert
Volem desfer el commitCanvi A, però els canvis de Canvi B
depenen del primer commit.
En aquest cas, git revert ha genera un conflicte i haurem de indicar manualment
quin serà l'estat final del fitxer.
jpuigcerver@fp:~/git_revert(main)$catREADME.md
# Git revert- Canvi A- Canvi Bjpuigcerver@fp:~/git_revert(main)$gitlga
*5ab52e3-(1 second ago)Revert "Canvi C i D"-Joan Puigcerver(HEAD -> main)*54e6def-(1 second ago)Revert "Canvi E"-Joan Puigcerver*1e5c1df-(1 second ago)Canvi E-Joan Puigcerver*9f735e9-(1 second ago)Canvi D-Joan Puigcerver*3102fd3-(1 second ago)Canvi C-Joan Puigcerver*e4b3412-(1 second ago)Canvi B-Joan Puigcerver*aef9ebe-(1 second ago)Canvi A-Joan Puigcerver*2c18085-(1 second ago)Commit inicial-Joan Puigcerverjpuigcerver@fp:~/git_revert(main)$gitrevertaef9ebe
Auto-merging README.mdCONFLICT (content): Merge conflict in README.mderror: could not revert aef9ebe... Canvi Ahint: After resolving the conflicts, mark them withhint: "git add/rm <pathspec>", then runhint: "git revert --continue".hint: You can instead skip this commit with "git revert --skip".hint: To abort and get back to the state before "git revert",hint: run "git revert --abort".hint: Disable this message with "git config advice.mergeConflict false"jpuigcerver@fp:~/git_revert(main|REVERTING)$gitstatus
On branch mainYou are currently reverting commit aef9ebe. (fix conflicts and run "git revert --continue") (use "git revert --skip" to skip this patch) (use "git revert --abort" to cancel the revert operation)Unmerged paths: (use "git restore --staged <file>..." to unstage) (use "git add <file>..." to mark resolution)both modified: README.mdno changes added to commit (use "git add" and/or "git commit -a")jpuigcerver@fp:~/git_revert(main|REVERTING)$codeREADME.md# (1)!jpuigcerver@fp:~/git_revert(main|REVERTING)$catREADME.md
# Git revert- Canvi Bjpuigcerver@fp:~/git_revert(main|REVERTING)$gitdiff
diff --cc README.mdindex 395c8c6,9f757b1..0000000--- a/README.md+++ b/README.md@@@ -1,3 -1,1 +1,2 @@@ # Git revert
- - Canvi A+- Canvi B
jpuigcerver@fp:~/git_revert(main|REVERTING)$gitaddREADME.md
jpuigcerver@fp:~/git_revert(main|REVERTING)$gitrevert--continue--no-edit
[main 41d66b0] Revert "Canvi A" 1 file changed, 1 deletion(-)jpuigcerver@fp:~/git_revert(main)$gitlga
*41d66b0-(0 seconds ago)Revert "Canvi A"-Joan Puigcerver(HEAD -> main)*5ab52e3-(1 second ago)Revert "Canvi C i D"-Joan Puigcerver*54e6def-(1 second ago)Revert "Canvi E"-Joan Puigcerver*1e5c1df-(1 second ago)Canvi E-Joan Puigcerver*9f735e9-(1 second ago)Canvi D-Joan Puigcerver*3102fd3-(1 second ago)Canvi C-Joan Puigcerver*e4b3412-(1 second ago)Canvi B-Joan Puigcerver*aef9ebe-(1 second ago)Canvi A-Joan Puigcerver*2c18085-(1 second ago)Commit inicial-Joan Puigcerver
S'ha editat manualment el fitxer per eliminar els marcadors de
conflicte i la línia - Canvi A.
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.