Skip to content

Cum să resetezi repository-ul cu git reset — Ghid complet

DodaTech Updated 2025-01-15 3 min read

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

În acest ghid vei învăța cum să folosești git reset cu modurile --soft, --mixed și --hard pentru a anula commit-uri și a reseta starea repository-ului.

The Problem

Ai făcut un commit greșit sau ai adăugat fișiere în staging din greșeală. git reset îți permite să anulezi aceste acțiuni fără a pierde munca (sau pierzând-o, în funcție de modul ales).

The Wrong Way

# Ștergi tot haotic
rm -rf .git
git init
# Ai pierdut tot istoricul

Resetting-ul haotic distruge întregul repository. git reset este soluția controlată, cu 3 niveluri de siguranță.

The Right Way

# Resetează HEAD, păstrează modificările în working directory
git reset --soft HEAD~1

# Resetează staging și HEAD, păstrează în working directory (default)
git reset --mixed HEAD~1

# Resetează tot — staging, HEAD și working directory
git reset --hard HEAD~1

Step-by-Step Fix

1. --soft: Anulează commit, păstrează tot în staging

Resetează HEAD la commit-ul anterior, dar păstrează modificările în staging:

git reset --soft HEAD~1

Folosește acest mod când ai făcut un commit greșit dar vrei să păstrezi totul pregătit pentru un nou commit.

2. --mixed: Anulează commit și staging (comportament implicit)

Resetează HEAD și staging, dar păstrează modificările în working directory:

git reset HEAD~1

Output:

Unstaged changes after reset:
M       index.html

Acesta este modul implicit. Folosește-l când vrei să revezi ce incluzi în commit.

3. --hard: Resetează tot

Șterge commit-ul, staging-ul și modificările din working directory:

git reset --hard HEAD~1

Atenție: Modificările se pierd definitiv (dacă nu sunt în reflog).

4. Resetează un fișier din staging

git reset HEAD index.html

Acest lucru scoate fișierul din staging, dar păstrează modificările locale.

5. Resetează la un commit specific

git reset --hard a1b2c3d

6. Reflog: salvează-te după un reset greșit

git reflog
git reset --hard HEAD@{2}

Prevention Tips

  • Folosește --soft pentru a corecta doar commit-ul
  • Folosește --mixed (implicit) pentru a revedea staging-ul
  • Evită --hard pe fișiere necommitate — modificările se pierd
  • Verifică git reflog înainte de reset pentru a putea reveni
  • Nu face --hard pe branch-uri publice după push

Common Mistakes

  1. Folosirea lui --hard fără verificare — pierzi definitiv modificările necommitate
  2. Reset după push pe branch public — rescrie istoricul și cauzează probleme echipei
  3. Confuzia dintre HEAD~1 și HEAD~2 — numărul indică câți pași înapoi să meargă
  4. Omisiunea salvgardării modificărilor înainte de reset — stash sau commit înainte de reset

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: Fă 3 commit-uri, apoi folosește git reset --soft HEAD~1, git reset --mixed HEAD~1 și git reset --hard HEAD~1 (pe rând, restaurând cu reflog) și observă diferențele.

FAQ

### Care este diferența dintre git reset --soft, --mixed și --hard?

--soft resetează doar HEAD (commit-ul), păstrând modificările în staging. --mixed (implicit) resetează HEAD și staging, păstrând modificările în working directory. --hard resetează tot — HEAD, staging și working directory, pierzând modificările.

Pot recupera modificări după git reset --hard?

Da, folosind git reflog. Găsește hash-ul commit-ului înainte de reset și folosește git reset --hard <hash> pentru a reveni. Reflog-ul păstrează istoricul mișcărilor HEAD pentru aproximativ 90 de zile.

Ce face git reset HEAD nume_fișier?

Scoate fișierul din staging (dacă a fost adăugat cu git add), dar păstrează modificările locale. Este util când ai adăugat din greșeală un fișier în staging.

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