Inicio·Comandos de terminal
Publicidad

Consigue tu bono en un exchange de criptomonedas

Bonos que recibes solo por registrarte. Las condiciones son las que publica cada exchange.

git reset

git

Uso

git reset [--soft|--mixed|--hard] <commit> | git reset <path>

Mueve el puntero de la rama a otro commit: --soft deja todo preparado, --mixed (por defecto) además vacía el área de preparación pero conserva tus cambios en los archivos, y --hard también los destruye sin recuperación.

Opciones habituales

OpciónSignificado
--softmove the branch only; index and files keep everything, so the change stays staged
--mixeddefault: also clear the staging area, leaving edits in your files
--hardalso overwrite your files; uncommitted work is destroyed
<path>no commit given: unstage that path
--keepmove but refuse if it would overwrite a local change
--mergelike --hard but keeps changes that do not collide

Ejemplos

git reset --soft HEAD~1

undoes the last commit and leaves everything staged

git reset HEAD~1

undoes the last commit; the changes sit in your files, unstaged

git reset src/app.ts

unstages one file without changing it

git reset --hard origin/main

throws away local commits AND uncommitted edits

Lo confuso es que deshacer tiene varias formas: mover a dónde apunta una rama no es lo mismo que añadir un commit que la revierte.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q¿Qué hace git reset?

Mueve el puntero de la rama a otro commit: --soft deja todo preparado, --mixed (por defecto) además vacía el área de preparación pero conserva tus cambios en los archivos, y --hard también los destruye sin recuperación.

Q¿Cómo se escribe?

git reset [--soft|--mixed|--hard] <commit> | git reset <path> — los corchetes marcan lo que puedes omitir.

Q¿Cuántas opciones vale la pena saber?

Aquí van 6; la lista completa está en man git. Este comando está en git.

Comandos relacionados

página man: man git-reset