Saltar al contenido principal

Guardado Temporal (git stash)

Imagina el siguiente escenario bastante común en oficinas:

  1. Estás trabajando a medias en la rama feature-login. Tienes archivos modificados pero tu código está completamente inutilizable (no compila, ni compila).
  2. De repente, tu jefe te avisa que hay un error gravísimo en la rama principal (main) que debes solucionar ¡Inmediatamente!
  3. Intentas hacer git switch main para 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 main libremente 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 list en cualquier momento si quieres ver cuántas cosas tienes escondidas en tus cajones temporales en caso de que lo hubieses olvidado.