Guardado Temporal (git stash)
Imagina el siguiente escenario bastante común en oficinas:
- Estás trabajando a medias en la rama
feature-login. Tienes archivos modificados pero tu código está completamente inutilizable (no compila, ni compila). - De repente, tu jefe te avisa que hay un error gravísimo en la rama principal (
main) que debes solucionar ¡Inmediatamente! - Intentas hacer
git switch mainpara ir a arreglarlo.
Git te detendrá con un error. Te dirá que tienes cambios sin guardar que serían sobreescritos si cambias de rama.
No quieres hacer un commit porque el código del login es una basura a medio terminar, pero tampoco quieres hacer un restore y perder tu hora de progreso. ¿Cuál es la solución?
Entra git stash al rescate
El comando "stash" (esconder) toma todos tus cambios sucios actuales y los mete temporalmente en un cajón (un portapapeles invisible de Git), devolviendo tu directorio de trabajo a un estado limpio y pulcro.
git stash
Al hacerlo:
- Tus cambios desaparecen de tus archivos.
- Tu directorio de trabajo vuelve al estado de tu último commit oficial limpio.
- Ahoras puedes hacer el salto a
mainlibremente y solucionar emergencias.
Recuperando lo escondido
Una vez resolviste el problema de tu jefe y lo subiste a GitHub, regresas a tu rama de trabajo git switch feature-login.
Quieres retomar tu trabajo anterior. Abres el cajón y lo devuelves a tus archivos:
git stash pop
Tus archivos a medio escribir reaparecen mágicamente y puedes continuar como si nada hubiera pasado.
Tip Útil: Puedes ejecutar
git stash listen cualquier momento si quieres ver cuántas cosas tienes escondidas en tus cajones temporales en caso de que lo hubieses olvidado.