Desidero cancellare la mia directory di lavoro di alcuni file non salvati, ma ho eseguito accidentalmente git reset --hard
.Git commit perso dopo il reset --hard. Non trovato da fsck, non in reflog
Mi sono reso conto che avevo perso il commit precedente (non premuto), quindi ho eseguito git reset --hard ORIG_HEAD
. Questo non mi ha portato al mio impegno perso.
Ho eseguito git reflog
, ma il commit non era elencato lì. Ho anche eseguito git fsck --lost-found
, ma non ci sono stati commit nella lista, solo alcuni blob e alberi non correlati.
Poiché non riesco a trovare alcun riferimento del commit perduto (a parte lo .git/COMMIT_EDITMSG
che ha ancora il messaggio di commit e l'elenco delle modifiche pertinenti), non sono sicuro di come procedere per il ripristino del commit.
C'è un modo per recuperare il commit perso, o dovrei prepararmi per una notte?
Perché pensi di aver commesso un git per le modifiche locali? git reset non l'avrebbe perso. Se avevi solo modifiche non accettate, quelle sono sparite. – fche
'git reset --hard' con nessun argomento commit-ish equivale a' git reset --hard HEAD', che non perderà commit, push o unpushed. Ripristinerà semplicemente il tuo indice e la directory di lavoro allo stato dell'ultimo commit effettuato, perdendo le modifiche a staging e nonstaged (ma non ancora committed). È probabile che il 'git reset --hard ORIG_HEAD' sia un problema, a seconda di quale sia esattamente l'ultimo comando che ha effettivamente aggiornato ORIG_HEAD, e quanto tempo fa era, e cosa hai fatto tra ... – twalberg
Grazie, il commit perso è stato effettuato circa mezz'ora prima del 'git reset --hard'. –