¿Cómo deshago un pago en git?

134

Acabo de comprobar una confirmación anterior de mi repositorio local de git. No le he hecho ningún cambio, solo lo estaba mirando. Ahora quiero volver a mi último commit, ¿cómo hago eso?

El comando exacto que utilicé para comprobarlo:

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Ahora, cuando escribo git log, en la parte superior veo esta confirmación desprotegida, pero ninguna de mis confirmaciones posteriores. ¿Los borré accidentalmente?

Yuval Karmi
fuente
Creo que lo estás viendo de la manera incorrecta: pagamos a las ramas (cabezas), no nos comprometemos individualmente
Z. Khullah

Respuestas:

183

Prueba esto primero:

git checkout master

(Si está en una rama diferente a la master, use el nombre de la rama allí).

Si eso no funciona, intente ...

Para un solo archivo:

git checkout HEAD /path/to/file

Para toda la copia de trabajo del repositorio:

git reset --hard HEAD

Y si eso no funciona, puede buscar en el registro de registro para encontrar su SHA de cabeza anterior y restablecerlo:

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

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

Ámbar
fuente
pero, ¿cómo puedo ver mis confirmaciones para decidir qué hash SHA1 le dará?
Yuval Karmi
1
No lo hace, escribe HEADliteralmente. Git ya sabe lo que HEADsignifica. Sin embargo, si realmente quisiera darle un SHA1, podría usar git logpara mirar el registro de confirmación.
Ámbar
cuando lo ejecuto git reset --hard HEADme devuelve a ese commit verificado ... Publicaré el comando exacto que usé para verificarlo.
Yuval Karmi
(Si tienes curiosidad, puedes escribir git rev-parse HEADy ver que te da un SHA1 correspondiente a tu último commit.)
Ámbar
He agregado dos nuevas opciones arriba, pruébelas (en orden, pruebe primero la versión de pago).
Ámbar
56

Para deshacer git checkouthacerlo git checkout -, al igual que cdy cd -con cáscara.

Gaylord Gracias Johnson
fuente
16

Probablemente quieras git checkout master, o git checkout [branchname].

wuputah
fuente