git reflog în Git

Jurnalul de siguranță al depozitului: înregistrează fiecare mutare a indicatorului HEAD și permite recuperarea commit-urilor pierdute.

Sintaxă comandă
git reflog [opțiuni]

Ce face git reflog

Comanda git reflog (reference log) este ‘plasa de siguranță’ a oricărui dezvoltator. În timp ce git log arată doar istoricul ramurii active, reflog ține minte fiecare acțiune locală: commit-uri, reset-uri, checkout-uri, rebase-uri și merge-uri din ultimele 90 de zile.

Dacă ai șters accidental o ramură sau ai rulat un git reset --hard greșit crezând că ai pierdut munca, git reflog îți va arăta hash-ul acelui commit, permițându-ți să îl recuperezi instantaneu prin git reset --hard HEAD@{număr} sau git branch recuperare HASH.

Opțiuni și argumente

Opțiune / Parametru Descriere
(fără argumente) Afișează istoricul recent al pozițiilor indicatorului HEAD.
show RAMURĂ Afișează istoricul mutărilor pentru o anumită ramură.
expire Curăță intrările din reflog mai vechi decât o anumită perioadă (implicit 90 de zile).

Exemple

Exemplul 1: Recuperarea unui commit ‘pierdut’ după un reset dur

Reflog găsește hash-ul commit-ului chiar dacă acesta nu mai apare în git log.

git reflog

Ieșire în terminal

4a1b2c3 (HEAD -> main) HEAD@{0}: reset: moving to HEAD~1
8f9e0d1 HEAD@{1}: commit: Adauga functia revolutionara
2b3c4d5 HEAD@{2}: commit: Structura de start

Greșeli frecvente

  • Presupunerea că un commit este pierdut pentru totdeauna după o comandă greșită: în Git aproape nimic nu se șterge imediat. Înainte de a te panica, verifică întotdeauna git reflog.

Comenzi înrudite

  • git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.
  • git reset: Mută indicatorul ramurii curente (HEAD) la un commit anterior și ajustează staging-ul sau fișierele locale.