Introducción a Git

Teoría: Movimiento a través de la historia

Git no solo guarda el historial de cambios, ¡también nos permite viajar en el tiempo! ⏳ Podemos cargar el estado exacto del código en cualquier momento del pasado.

En esta lección, aprenderemos a movernos por el historial usando el comando git checkout. ¡Vamos a explorar cómo hacerlo!

Ver el historial con git log

Antes de movernos por el historial, debemos saber qué cambios se han realizado y cuándo. Para eso, utilizamos el comando git log:

# Muestra un historial abreviado con los commits
git log --oneline

Salida de ejemplo:

fc74e2d update README.md 65a8ef7 Revert "remove PEOPLE.md" 5120bea add new content e6f625c add INFO.md 273f81c remove NEW.md aa600a4 remove PEOPLE.md fe9893b add NEW.md 3ce3c02 add PEOPLE.md 3c5d976 add README.md

Cada línea muestra un commit, con un identificador único (hash) y su mensaje descriptivo. Vamos a usar estos identificadores para viajar en el tiempo.

Moverse en el historial con git checkout

Para regresar al estado de un commit específico, usamos git checkout <hash_del_commit>. Por ejemplo, si queremos volver al commit con el mensaje add INFO.md, ejecutamos:

git checkout e6f625c

Salida típica:

Note: switching to 'e6f625c'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch.

Aquí, Git nos advierte que estamos en un estado llamado detached HEAD (cabeza separada). Esto significa que hemos viajado a un punto en el tiempo fuera de nuestra línea de desarrollo principal.

Ahora podemos ver cómo eran los archivos en ese momento. Si abrimos el proyecto, notaremos que algunos archivos pueden haber desaparecido o vuelto a versiones anteriores.

💡Moverse a un commit anterior no borra los cambios del futuro, simplemente nos permite examinarlos.

Regresar al último commit

Para volver al estado más reciente del proyecto, simplemente ejecutamos:

git checkout main

Aquí, main es la rama principal del proyecto. Más adelante aprenderemos más sobre las ramas en Git.

Verificar nuestra ubicación con git branch

Cuando nos movemos en el historial, nuestro directorio cambia, pero Git no nos muestra de inmediato en qué punto nos encontramos. Para verificar nuestra ubicación actual en la historia del proyecto, utilizamos el comando:

git branch

Si estamos en el último commit, obtendremos esta salida:

* main

Pero si estamos en un commit del pasado, veremos algo como esto:

* (HEAD detached at e6f625c) main

Esto nos indica que estamos en un estado detached HEAD y no en la rama principal.

Hacer que git nos muestre la ubicación en el prompt

Para evitar olvidarnos en qué parte del historial nos encontramos, muchos desarrolladores configuran el prompt de su terminal para mostrar la ubicación actual del repositorio. Por ejemplo:

# Si estamos en el último commit hexlet-git git:(main) # Si estamos en un commit del pasado hexlet-git git:(e6f625c)

En Bash, esto se logra configurando la variable de entorno $PS1. Si te interesa personalizar tu terminal para mostrar esta información, puedes consultar los materiales adicionales.

asciicast

Resumen

  • git log --oneline nos permite ver una lista resumida de commits.
  • Podemos movernos entre commits usando git checkout <hash_del_commit>.
  • Al hacer git checkout a un commit del pasado, entramos en el estado *detached HEAD*.
  • Para volver al estado más reciente, usamos git checkout main.
  • git branch nos indica en qué commit o rama estamos.
  • Podemos personalizar nuestra terminal para mostrar esta información automáticamente.

Viajar en el historial de Git es útil para revisar versiones anteriores de nuestro código o recuperar cambios que pensamos que habíamos perdido. ¡Sigue explorando y experimentando con tu repositorio para familiarizarte con estos comandos!

Completado

0 / 15