Come posso annullare un checkout in Git?


134

Ho appena verificato un commit precedente dal mio repository git locale. Non ho apportato modifiche, lo stavo solo guardando. Ora voglio tornare al mio ultimo commit: come posso farlo?

Il comando esatto che ho usato per verificarlo:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Ora quando scrivo git log, nella parte superiore vedo che questo è stato eseguito il commit, ma nessuno dei miei commit successivi. Ho cancellato accidentalmente quelli?


Penso che tu lo stia vedendo nel modo sbagliato: facciamo il checkout ai rami (teste), non ci
impegniamo

Risposte:


183

Prova prima questo:

git checkout master

(Se sei su un ramo diverso da master, usa invece il nome del ramo lì.)

Se non funziona, prova ...

Per un singolo file:

git checkout HEAD /path/to/file

Per l'intera copia di lavoro del repository:

git reset --hard HEAD

E se non funziona, puoi guardare nel reflog per trovare la tua vecchia testa SHA e reimpostarla:

git reflog
git reset --hard <sha from reflog>

HEAD è un nome che punta sempre all'ultimo commit nel ramo corrente.


ma come posso vedere i miei impegni per decidere quale hash SHA1 dare?
Yuval Karmi,

1
Non lo fai - scrivi HEAD, alla lettera. Git sa già cosa HEADsignifica. Tuttavia, se davvero, volessi davvero dargli un SHA1, potresti usare git logil registro di commit.
Ambra

quando git reset --hard HEADlo eseguo mi riporta a quel commit estratto ... Pubblicherò il comando esatto che ho usato per verificarlo.
Yuval Karmi,

(Se sei curioso, puoi digitare git rev-parse HEADe vedere che ti dà un SHA1 corrispondente al tuo ultimo commit.)
Ambra

Ho aggiunto due nuove opzioni sopra, provale (in ordine - prova prima la versione di pagamento).
Ambra


16

Probabilmente vuoi git checkout master, o git checkout [branchname].

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.