2010-04-22 13 views
51

Crap! Circa una settimana fa, stavo rifondando alcuni commit mentre provavo a ripulire il mio repository, e apparentemente non l'ho finito. Oggi, una settimana e diversi commit più tardi, sono andato a ribattere per riordinare alcuni commit da oggi, e mi ha detto che ero già nel bel mezzo di un rebase.Interrompe il vecchio git rebase ei commit persi da quando è iniziata la base di valori

Quello avrebbe dovuto essere uno spunto per copiare il mio repository per ogni evenienza. Ma non l'ho fatto ... invece ho eseguito git rebase --abort che suonava proprio in quel momento. Bene, non era giusto. Ha interrotto il rebase da una settimana fa e ha ripristinato il HEAD del master su quello vecchio. Manichino!

Ho diversi altri rami che sono abbastanza recenti, e ho spinto a remoto diverse volte, ma i cambiamenti più recenti sembrano scomparsi per sempre. Non possiedo il livello appropriato di git-fu per sapere se c'è un modo per recuperare le mie modifiche.

Sono fregato?

MODIFICA - WOW! Grazie ragazzi! git reflog è fantastico! Sono completamente guarito ... lezione imparata. Contrassegnare la risposta di Tchalvak ha accettato di essere il primo a postare.

risposta

78

Controllare git reflog. Puoi tornare indietro nel tempo usando quegli hash di commit come riferimento in quasi tutti i casi.

Dovrei anche copiare fisicamente la directory git repo altrove come luogo per fare test preliminari per vedere che cosa funzionerà, in questo modo puoi pasticciare con quello che vuoi senza perdere file non tracciati o ottenere cose in uno stato che tu hai non è possibile tornare a.

+10

'git reflog' mi ha appena salvato da perdere ore di lavoro. Grazie! –

+4

Ti amo per questa risposta. Se potessi fare una sovvenzione di dieci volte lo farei. – RobW

+0

salvato anche il mio. molte grazie! – liuyu