Probar con commits antiguos
En los pasos anteriores, aprendimos sobre HEAD
y cómo obtener su hash de commit. Ahora, veamos cómo Git se refiere a commits antiguos.
Actualmente, solo tenemos un commit en nuestro repositorio. Para demostrar cómo referirse a commits antiguos, necesitamos hacer otro commit.
Primero, agreguemos otra línea a nuestro archivo message.txt
. Utiliza el comando echo
con >>
para agregar texto al archivo:
echo "This is a second message." >> message.txt
Ahora, veamos el estado:
git status
Deberías ver que message.txt
ha sido modificado:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add and/or git commit -a)
Ahora, prepara los cambios y crea un nuevo commit:
git add message.txt
git commit -m "Add a second message"
Deberías ver una salida que indique que se ha creado un nuevo commit:
[master a1b2c3d] Add a second message
1 file changed, 1 insertion(+)
Ahora tenemos dos commits. Volvamos a ver el registro:
git log --oneline
La opción --oneline
ofrece una vista concisa del registro. Deberías ver algo como esto (los hashes serán diferentes):
a1b2c3d (HEAD -> master) Add a second message
e4f5g6h Send a message to the future
El commit de la parte superior es el más reciente, y es donde apunta HEAD
. El commit debajo es el más antiguo.
Git proporciona formas de referirse a commits en relación con HEAD
. El commit justo antes de HEAD
se puede referir como HEAD~1
o HEAD^
. Intentemos obtener el hash del commit anterior utilizando git rev-parse
:
git rev-parse HEAD~1
Deberías ver el hash del primer commit que hiciste:
e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9u0v1w2x3
Este hash debe coincidir con el hash del commit "Send a message to the future" en la salida de git log --oneline
.
Puedes usar HEAD~2
, HEAD~3
, y así sucesivamente, para referirte a commits más atrás en la historia. Esta referencia relativa es muy útil para navegar por la historia de tu proyecto y realizar operaciones en versiones específicas del pasado.