2011-01-22 21 views
7

Diciamo, il mio attuale git log èvedere tutta la storia di git

commit3

commit2

commit1

I ha ripristinato la testa commit2.

Ora voglio tornare a commit3, ma io dimenticare l'SHA-1 di commit3, quindi voglio guardare il registro, ma "git log" mostrerà solo commit2, commit1, la mia domanda è come resettare a commit3 o lasciare che il log mostri anche commit3 ora?

Grazie

risposta

10

Utilizzare git reflog per trovare il vecchio riferimento e passarlo direttamente a git log. Si noti che il reflog viene eliminato periodicamente ei vecchi commit verranno eliminati a meno che non facciano parte di un ramo. Se si desidera annullare un commit ma lasciarlo nella cronologia, utilizzare git revert per annullarli senza rimuoverli dalla cronologia.

+0

Oppure, se è inedita, basta creare una diversa ramo al commit da mantenere. – Cascabel

4

Il comando

git reflog 

vi mostrerà un elenco di SHAs che sono stati alla testa. In altre parole, mostra un elenco di commit nell'ordine in cui sono stati estratti. In questa lista vedrai anche la sintassi [email protected]{1}, [email protected]{2} ecc. Questo è un modo per indirizzare i HEAD precedenti.

Il tuo caso git checkout [email protected]{1} dovrebbe verificare commit3, perché era il HEAD prima dell'attuale HEAD.

0

Ci sono due modi: -

Classic: git log git reflog

Big Picture :) --graph --decorate --oneline

Problemi correlati