Comprobar el estado de Git para cambios aplicados
En este paso, exploraremos cómo el comando stash
de Git interactúa con el directorio de trabajo y cómo comprobar el estado de tu repositorio después de aplicar un stash.
Primero, asegúrate de estar en el directorio de tu proyecto. Abre tu terminal y navega hasta el directorio my-time-machine
:
cd ~/project/my-time-machine
Ahora, creemos un nuevo archivo y agreguemos algo de contenido para simular tener cambios no confirmados:
echo "This is a new feature." > feature.txt
echo "Adding some more content." >> message.txt
Ahora hemos creado un nuevo archivo feature.txt
y modificado el archivo existente message.txt
. Veamos cómo Git ve estos cambios utilizando git status
:
git status
Deberías ver una salida que indique que feature.txt
no está siendo rastreado y 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
Untracked files:
(use "git add <file>..." to include in what will be committed)
feature.txt
no changes added to commit (use "git add" and/or "git commit -a")
Ahora, hagamos un stash de estos cambios. Hacer un stash es como poner tu trabajo actual a un lado temporalmente para poder cambiar a otra cosa sin confirmar cambios incompletos.
git stash save "Work in progress"
Deberías ver una salida que confirme que el stash se ha guardado:
Saved working tree and index state On master: Work in progress
Tu directorio de trabajo ahora debería estar limpio, como si no hubieras realizado esos cambios. Puedes verificar esto con git status
:
git status
La salida debería mostrar un directorio de trabajo limpio:
On branch master
nothing to commit, working tree clean
Ahora, apliquemos el stash que acabamos de crear. Aplicar un stash devuelve los cambios guardados en el stash a tu directorio de trabajo.
git stash apply
Deberías ver una salida que indique que los cambios se han aplicado:
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
Untracked files:
(use "git add <file>..." to include in what will be committed)
feature.txt
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9)
Finalmente, comprobemos el git status
nuevamente para ver el estado de nuestro directorio de trabajo después de aplicar el stash.
git status
La salida debería mostrar que los cambios del stash ahora están de vuelta en tu directorio de trabajo, apareciendo como archivos modificados y no rastreados, tal como antes de hacer el stash. Esto confirma que git stash apply
devuelve los cambios sin agregarlos automáticamente al área de preparación o confirmarlos.