Git Reflog
Ultimo aggiornamento
git reflog registra ogni punto a cui HEAD ha puntato: ogni commit, checkout, reset e rebase. Siccome Git conserva quei commit per un po' anche dopo che sono spariti dai tuoi branch, il reflog è la tua rete di sicurezza: ti permette di trovare e recuperare il lavoro che un reset --hard, un rebase sbagliato o un branch eliminato sembravano aver distrutto.
Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.
Sintassi
| Comando | Cosa fa |
|---|---|
git reflog | Mostra le posizioni recenti di HEAD, con gli hash |
git reflog show <branch> | Mostra il reflog di un branch |
git reset --hard HEAD@{1} | Riporta HEAD a una posizione precedente |
git branch recovered <hash> | Ricrea un branch su un commit perso |
Recuperare dopo un errore
Annulla un reset sbagliato trovando il commit precedente al reset.
| Passo | Comando | Risultato |
|---|---|---|
| 1 | git reflog | Trova il commit precedente al reset |
| 2 | git reset --hard HEAD@{1} | Riporta il tuo branch su quel commit |
Domande frequenti su git reflog
Cos'è git reflog?
HEAD (e la punta di ogni branch) ha puntato nel tuo repository locale, dopo commit, checkout, reset, merge e rebase. A differenza di git log, che segue la discendenza dei commit, il reflog è un registro cronologico delle tue azioni, ed è questo che lo rende utile per il recupero.Come recupero un commit dopo git reset --hard?
git reflog per trovare la voce del commit su cui eri prima del reset (qualcosa come HEAD@{1}), poi git reset --hard <that-hash> (o HEAD@{1}) per tornarci. Il commit non è stato davvero eliminato: semplicemente nessun branch puntava più a lui, e il reflog ne conosce ancora l'hash.Come ripristino un branch eliminato?
git reflog, poi ricrea lì il branch: git branch <name> <hash>. Se l'eliminazione è recente (entro la scadenza del reflog di Git, di solito qualche settimana), i commit sono ancora raggiungibili in questo modo.git reflog funziona tra cloni diversi?
Posso esercitarmi online?
git reflog in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come annullare le modifiche e recuperare il lavoro passo dopo passo.