Cum să anulezi commit-uri cu git revert — Ghid complet
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 degit resetdupă 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
- Confuzia între revert și reset — reset rescrie istoricul, revert creează un commit nou
- Revert la un commit care are dependințe — commit-uri ulterioare pot depinde de cel anulat
- Omisiunea rezolvării conflictelor — revert-ul poate eșua cu conflicte
- Revert la un merge commit — trebuie specificat
-m 1sau-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
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