2011-02-07 16 views
7

ho checkout un file con le mie ultime modifiche a testa per errore ..Annulla "git checkout HEAD foo.c" in git scm

git checkout HEAD foo.c 

Questo significa che perso tutti i miei cambiamenti che volevo commettere. ..

c'è un modo per trovare queste modifiche nella cache di Git o in qualche cronologia locale?

risposta

3

A meno che non l'abbia eseguito il commit, (o lo abbia nascosto o aggiunto all'indice) git non sarebbe a conoscenza delle modifiche locali. Quindi, no.

7

se non si sono apportate modifiche al file mentre si lavora (e quindi si ripristinano) quindi non si può fare molto a riguardo.

se hai aggiunto le modifiche del file utilizzando git add (probabilmente lo hai, perché stavi per eseguire il commit), quindi il blob dovrebbe già essere nel db di git. è possibile utilizzare git fsck per trovare oggetti penzolanti. cerca i BLOB e ispezionali tutti - usando git show o git cat-file - (ci vuole tempo, lo so ...), ma se sei fortunato troverai il contenuto del tuo file. usa git cat-file blob $hash_of_object > foo.c fare per recuperare il contenuto del tuo file

+0

senza fortuna ma comunque grazie! – Mesut

+0

Mesut, l'hai aggiunto a git, ad aspettarti qualche forma di restaurabilità? –

+0

sì era già nel repository ma ho perso le ultime modifiche che ho fatto oggi ... – Mesut