2010-08-30 10 views
77

Acabo de ver un compromiso anterior de mi repositorio de git local. No hice ningún cambio, solo lo estaba viendo. Ahora quiero volver a mi último compromiso: ¿cómo puedo hacer eso?¿Cómo deshago un pago en git?

El comando exacto que solía echarle un vistazo:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08 

Ahora cuando escribo git log, en la parte superior que ver esta desprotegido cometer, pero ninguno de mis confirmaciones posteriores. ¿Lo eliminé accidentalmente?

+0

Creo que lo está viendo de la manera incorrecta: nos registramos en las sucursales (cabezas), no cometemos individualmente –

Respuesta

128

probar este primero:

git checkout master 

(Si estás en una rama diferente de master, utilice el nombre de la sucursal en su lugar.)

Si eso no funciona, intente ...

para un solo archivo:

git checkout HEAD /path/to/file 

Para toda la copia de trabajo repositorio:

git reset --hard HEAD 

Y si eso no funciona, entonces usted puede mirar en el reflog para encontrar su antigua SHA cabeza y restablecer a que:

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

HEAD es un nombre que siempre apunta a la última cometer en su rama actual.

+0

, pero ¿cómo veo mis confirmaciones para decidir qué SHA1 hash darle? –

+1

Usted no - escribe 'HEAD', textualmente. Git ya sabe lo que significa 'HEAD'. Sin embargo, si realmente deseaba darle un SHA1, podría usar 'git log' para ver el registro de confirmación. – Amber

+0

cuando ejecuto 'git reset --hard HEAD' me lleva de regreso a commit confirmado ... Publicaré el comando exacto que usé para verificarlo. –

10

Probablemente desee git checkout master o git checkout [branchname].

22

Para deshacer git checkout haga git checkout -, de manera similar a cd y cd - en shell.

+2

Incluso no sabía el comando 'cd -'. ¡Gracias! –

Cuestiones relacionadas