Se proporcionan la habilidades necesarias para trabajar con revisiones anteriores de un proyecto. En primer lugar muestra como explorar commits viejos, y se explican los comandos de reset y revert.
El comando git checkout cumple tres funciones distintas y es el registro de los commits, la protección de archivos y el cambio hacia ramas existentes en el repositorio.
Uso:
git checkout master
Nos permite regresar a la rama principal o rama master del proyecto.
git checkout <commit> <file>
Podemos ver una versión anterior de un <file> (archivo) que reside en el directorio de trabajo en una copia exacta del proyecto.
git checkout <commit>
Actualiza todos los archivos del directorio de trabajo que coincida con el commit especificado.
El comando git revert deshace commits, pero en lugar de eliminar el commit del historial del proyecto agrega un nuevo commit con el contenido resultante, de esta forma se mantiene la integridad del historial del revisiones.
Uso
git revert <commit>
Si el git revert se considera una manera segura de deshacer cambios, el comando git reset se considera el método peligroso. Al ocupar git reset no hay forma de recuperar la copia original. Se debe tener cuidado al utilizar este comando, ya que si no se ocupa de manera correcta podría perder su proyecto.
Al igual que git checkout, git reset es un comando versátil con muchas configuraciones.
Uso
git reset <file>
Quita el archivo especificado desde el área de trabajo, pero deja el directorio sin algún cambio.
git reset
Reestablece el área de trabajo para que coincida con el commit más reciente.
git reset --hard
Reestablece el área de trabajo para que coincida con el commit más reciente, además de sobreescribir todos los cambios en el directorio de trabajo. Dicho de otro modo: esto borra todos los cambios sin confirmar, por esta razón es importante estar seguro de deshacer los cambios locales.
git reset <commit>
Mueve la cabeza o la punta de la rama actual hacia atrás al <commit> definido en la línea de comando, restableciendo todos los archivos e información que se tenía en ese <commit>. Todos los cambios realizados desde <commit> residirán en el directorio de trabajo, que le permite volver a un <commit> del proyecto.
git reset --hard <commit>
Mueve la cabeza o punta de la rama actual hacia <commit> especificado y restablece tanto el área de trabajo y el directorio de trabajo para que coincida. Esto no sólo borra los cambios no confirmados, sino que confirma después del <commit>.