Checkout Stage Reset Reflog deshacer cambios en git

Checkout

Deshacer todos los cambios hechos a archivos sin confimar aún

git checkout -- .

Deshacer los cambios realizados a un archivo en area de trabajo

git checkout -- file.txt

Stage

Bajar un archivo del stage

git reset HEAD file.txt

Reset

Cuando por ejemplo se da cuenta que el ultimo commit que realizó está incompleto ejecuta este comando para luego poder confirmar los cambios completos con git commit

git reset --soft HEAD^
// ... termina los cambio
git commit -am "descripción del commit"

Si se quiere volver atras hasta cierto commit borrando los commits posteriores a ese commit seleccionado sin borrar los cambios realizado

git reset --mixed j39e3u9

Si se quiere volver atras hasta cierto commit borrando definitivamente los cambios efectuados

git reset --hard j39e3u9

Reflog

Si por ejemplo se han realizado operaciones de reset en el repositorio y se han perdido cambios que ahora se quieren recuperar, se puede usar reflog para ver el historial de cambios que ha recibido el repo aún si con git log no se ven esos cambios, se busca el id donde están los cambios a recuperar y luego con git reset se recuperan

git reflog
git reset --hard d7906e1-id-a-recuperar