git revert în Git

Anulează efectele unui commit din trecut prin crearea unui nou commit invers, fără a altera istoricul.

Sintaxă comandă
git revert [opțiuni] commit...

Ce face git revert

Spre deosebire de git reset (care rescrie și șterge istoricul), git revert este o operațiune complet sigură pentru depozite comune și servere de producție.

Ea analizează modificările introduse de un anumit commit și creează un commit NOU care face exact operațiunile inverse (șterge liniile care fuseseră adăugate și readuce liniile care fuseseră șterse). Istoricul rămâne intact și transparent.

Opțiuni și argumente

Opțiune / Parametru Descriere
commit Identificatorul SHA-1 sau eticheta commit-ului pe care vrei să îl anulezi.
--no-commit, -n Aplică modificările inverse direct în staging fără a genera automat un commit nou.
--abort Anulează operațiunea în caz de conflicte și revine la starea anterioară.

Exemple

Exemplul 1: Anularea în siguranță a unui commit defect

Creăm un commit invers care neutralizează modificarea fără a rescrie istoricul.

git init -b main demo_rev >/dev/null
cd demo_rev
git config user.name "Test" && git config user.email "test@exemplu.ro"
echo "stabil" > app.txt && git add app.txt && git commit -m "versiune stabila" >/dev/null
echo "bug critic" >> app.txt && git add app.txt && git commit -m "adauga bug" >/dev/null
git revert --no-edit HEAD >/dev/null
cat app.txt

Rezultat

stabil

Greșeli frecvente

  • Confuzia între revert și reset: folosește reset doar pentru commit-uri locale private și revert pentru orice modificare care a fost deja trimisă pe server.

Comenzi înrudite

  • git reset: Mută indicatorul ramurii curente (HEAD) la un commit anterior și ajustează staging-ul sau fișierele locale.
  • git commit: Înregistrează un nou instantaneu permanent al fișierelor din staging în istoricul depozitului.
  • git restore: Restaurează fișierele din directorul de lucru sau scoate modificările din zona de staging.