Guardando Cambios en el Stash
Ahora que tenemos nuestro espacio de trabajo configurado, realicemos algunos cambios y aprendamos cómo ocultarlos temporalmente.
Primero, hagamos algunas modificaciones en nuestro archivo README.md:
echo "This is a work in progress" >> README.md
Este comando añade una nueva línea a nuestro archivo README.md. Vamos a crear también un archivo nuevo:
echo "Some important notes" > notes.txt
Ahora, si ejecutamos git status, veremos que tenemos tanto archivos modificados como archivos sin seguimiento (untracked):
git status
Deberías ver una salida indicando que README.md ha sido modificado y que notes.txt no tiene seguimiento.
Imagina que en este punto necesitas cambiar rápidamente a otra tarea, pero no estás listo para hacer un commit de estos cambios. ¡Aquí es donde git stash resulta útil!
Para guardar tus cambios en el stash, ejecuta:
git stash
Deberías ver una salida similar a esta:
Saved working directory and index state WIP on master: 1234567 Initial commit
Ahora, si ejecutas git status de nuevo, notarás algo interesante:
git status
Verás que, aunque README.md ya no aparece como modificado, notes.txt sigue figurando como un archivo sin seguimiento. Este es un punto crucial sobre git stash:
Importante: Por defecto, git stash solo guarda:
- Cambios en archivos rastreados (archivos que Git ya conoce).
- Cambios que ya están en el staging area.
Los archivos sin seguimiento (como nuestro notes.txt) no se incluyen en el stash de forma predeterminada. Este comportamiento garantiza que Git no oculte accidentalmente archivos nuevos que quizás no quieras incluir en el repositorio.
Si deseas incluir los archivos sin seguimiento en tu stash, puedes usar la opción -u (o --include-untracked):
git stash -u
Después de ejecutar este comando, tanto los cambios en README.md como el nuevo archivo notes.txt se guardarán en el stash.
Para ver qué hay en tu lista de stashes, puedes usar:
git stash list
Deberías ver una o dos entradas en el stash, dependiendo de si usaste la opción -u.
Presiona q para salir de la vista de la lista de stashes.
Recuerda, el stash es perfecto para cambios rápidos de contexto. Sin embargo, no es un sustituto de los commits en tu flujo de trabajo a largo plazo. Los stashes están pensados para ser un almacenamiento temporal.