Git - Reset
Git - reset
-
Mueve el puntero HEAD del grafo de commits según donde le indiquemos y mantiene los datos que contenía el commit en el {UnStaged} hasta que los modifiquemos y lo volvamos a añadir al grafo de commits mediante
git add <archivo>
o los descartemos del todo mediante el comandogit restore <archivo>
- Si ejecutamos el comando
git restore <archivo>
elimina todos los anteriores datos que tuviera registrado el commit de anteriores commits y solo se mostrará los que tenga en la posición actual en el que se encuentre.
- Si ejecutamos el comando
Funciones básicas
-
Restaura a un estado anterior o Elimina los cambios dependiendo del
commit
que le indiquemos dentro del árbol de grafos decommits
dentro del [Repositorio Local]- Cuando elimina el commit que le hemos indicado y también elimina los commits que haya por detrás al que le indiquemos
-
Extrae los ficheros del {Staging Area/Staged/Indice/Index}
- Revierte el
git add <archive>
- Revierte el
-
Este comando mueve la rama y el commit según le indique el puntero [HEAD]
- Si [HEAD] esta apuntando a la rama master y ejecutamos el comando
git checkout <identificador commit anterior>
-
Hará que la rama master apunte al commit que le hayamos indicado dentro de su [Repo.Local]
-
Deshacer los cambios locales y de los commits trayendo la última versión del servidor GITHUB y apuntar a la copia local principal
git reset
- Cambia de posición el [HEAD] que esta apuntando a un commit determinado dentro del grafo de commits y se mueve hasta el commit que le indiquemos eliminando todos los commits antecesores de la rama en la que nos encontremos
git reset --hard <commit>
- Se utiliza para eliminar todos los cambios que tenga el commit en el que se encuentre el [HEAD]
git reset --hard origin/master
-
Para mover el puntero [HEAD] según el commit que le indiquemos , para así extraer sus ficheros/documentos del [Repositorio local] y enviarlos al estado {UnStaged} , una vez en el estado {Unstaged} ; los archivos estarán a la espera de ser modificados y añadidos al {Staging Area/Index} o eliminados mediante el comando
git restore
- Resumen :
- Mueve el puntero [HEAD] y deja el archivo {UnStaged} hasta que lo volvamos a añadir mediante
git add <archivo>
o eliminemos los cambios definitivamente mediantegit restore <archivo>
- Mueve el puntero [HEAD] y deja el archivo {UnStaged} hasta que lo volvamos a añadir mediante
- Resumen :
git reset <commit>
- Extrae el
<archivo>
de {Staging Area/Index} para enviarlo al estado (Working Directory)
git reset <archivo>
- Extrae del {Staging Area/Index} todos los ficheros para enviarlo al estado (Working Directory)
git reset .
- Extraer archivos del {Staging Area/Staged/Index} para enviarlos de nuevo al (Working Directory)
- Los cambios que has hecho seguirán en el archivo , el comando solo saca los archivos del {Staging Area/Staged/Index}
git reset HEAD <archivos>
Dependiendo de los argumentos que le añadamos puede afectar al :
-
[Árbol de Commit / Commit Tree (HEAD)]
- Deshace el último commit posicionando la rama actual y con el [HEAD] en el commit anterior a este modificando la versión de los archivo que pudiera tener.
# Ancestro
# ↓
git reset --soft HEAD~
- “Es un paso atrás en el historial de commit”
- En caso de error se puede recuperar el commit deshecho
- Eliminar el antepenúltimo commit del grafo de commits del [Repositorio Local]
# Elimina el "commit ancestro" que va detrás del último commit dentro del grafo de commits del [Repo.Local]
git reset --soft HEAD~1
Opciones de reset
- Restablecer una rama a un commit anterior
git reset <opciones> <COMMIT>
Opciones disponibles al comando anterior
-
--soft
: No restablece el fichero {Index} o del árbol de trabajo , pero restablece [HEAD] para commit- Cambia todos los archivos a “Cambios a ser commited*
-
--mixed
: Restablece el {Index} pero no el árbol de trabajo e informa de lo que no se ha actualizado -
--hard
: Restablece elcommit
, {Index} y eldirectorio de trabajo
- Cualquier cambio en los archivos rastreados en el árbol de trabajo desde el commit son descartados
-
--merge
: Restablece el {Index} y actualiza los archivos en el arbol de trabajo que son diferentes entre le commit y HEAD pero mantiene los que son diferentes entre el {Index} -
--keep
: Restablece las entradas del {Index} , actualiza los archivos en el árbol de trabajo que son diferentes entrecommit
y [HEAD]- Si un archivo que es diferente entre un
commit
y el [HEAD] tiene cambios locales , el reinicio se aborta
- Si un archivo que es diferente entre un
(Directorio de Trabajo/Working Directory)
- Deshace todos los cambios hechos en los archivos desde su último commit hasta el (Working Directory/Workspace)
git reset --hard HEAD~
-
Deja el archivo en su estado original antes de que fuera modificado , agregado mediante
git add
y confirmado con el comandogit commit
al historial de commits- Este es el comando más peligroso ya que en caso de error no se podrá recuperar los cambios o commits sobre los archivos**
{Staging Area/Staged/Index}
- Deshace los cambios hechos en el archivo desde su último commit hasta el {Unstaged} lo que significa que deshará los cambios realizados en el archivos después del
git add
git reset [--mixed] HEAD~
-
“Vuelve el archivo al estado antes de hacerle
git add
” -
En caso de error se puede recuperar el commit deshecho
Deja un comentario