Skip to content

Cum să anulezi commit-uri cu git revert — Ghid complet

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să anulezi commit. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să folosești git revert pentru a anula commit-uri existente fără a rescrie istoricul, și când să alegi revert în loc de reset.

The Problem

Ai făcut un commit care conține un bug sau o funcționalitate nedorită și ai nevoie să-l anulezi. Dacă ai făcut deja push, git reset rescrie istoricul public și afectează întreaga echipă.

The Wrong Way

# Rescrii istoricul public — periculos
git reset --hard HEAD~1
git push --force

Force push după reset pe branch-uri publice cauzează haos: colegii tăi vor avea istorice divergente și conflicte greu de rezolvat.

The Right Way

# Anulează ultimul commit
git revert HEAD

# Anulează un commit specific
git revert a1b2c3d

# Anulează mai multe commit-uri
git revert HEAD~3..HEAD

# Revert fără a deschide editorul
git revert --no-edit HEAD

Step-by-Step Fix

1. Revert la ultimul commit

Creează un commit nou care inversează modificările ultimului commit:

git revert HEAD

Output:

[main 1c2d3e4] Revert "feat: adauga autentificare"
 3 files changed, 15 deletions(-)

2. Revert la un commit specific

Anulează orice commit din istoric după hash:

git revert a1b2c3d

3. Revert la mai multe commit-uri

Anulează un interval de commit-uri:

git revert --no-commit HEAD~3..HEAD
git commit -m "revert: anuleaza ultimele 3 commit-uri"

4. Revert, dar păstrează modificările în working directory

git revert -n HEAD
# Modificările sunt aplicate dar necommitate
# Poți edita înainte de commit
git commit -m "revert: anuleaza ultimul commit cu ajustari"

5. Rezolvă conflictele la revert

git revert HEAD
# CONFLICT in index.html
# Rezolvă conflictul manual
git add index.html
git revert --continue

Prevention Tips

  • Folosește git revert în loc de git reset după push
  • Revert-ul este sigur pentru branch-uri publice — păstrează istoricul
  • Verifică git log înainte de revert pentru a identifica commit-ul corect
  • Revert-ul poate cauza conflicte — rezolvă-le ca la un merge normal
  • Poți face revert la un revert dacă te-ai răzgândit

Common Mistakes

  1. Confuzia între revert și reset — reset rescrie istoricul, revert creează un commit nou
  2. Revert la un commit care are dependințe — commit-uri ulterioare pot depinde de cel anulat
  3. Omisiunea rezolvării conflictelor — revert-ul poate eșua cu conflicte
  4. Revert la un merge commit — trebuie specificat -m 1 sau -m 2

Aceste greșeli apar frecvent în lucrul cu Git. Contribuitorii DodaTech le-au identificat prin analiza proiectelor open-source și a sistemelor de producție.

Practice Exercise

Exercițiu: Creează 3 commit-uri, fă push pe un branch local, apoi folosește git revert HEAD~2..HEAD pentru a anula ultimele două și observă cum se creează commit-uri noi de revert.

FAQ

### Ce diferență este între git revert și git reset?

git revert creează un commit nou care inversează modificările commit-ului țintă — nu rescrie istoricul. git reset mută HEAD înapoi și poate rescrie istoricul. Folosește revert pentru commit-uri publice și reset pentru commit-uri locale nepublicate.

Cum anulez un merge commit cu git revert?

Folosește git revert -m 1 <hash> unde -m 1 specifică părintele principal al merge-ului. Fără -m, Git nu știe pe ce parte să revină.

Pot face revert la un revert?

Da. Dacă ai anulat un commit și apoi ai decis că ai nevoie de el, poți face git revert <hash-revert> pentru a restaura modificările originale.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu Git pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro