Git Stash
Última actualización
git stash guarda tus cambios sin confirmar y devuelve tu árbol de trabajo a un estado limpio, para que puedas cambiar de rama o hacer pull sin confirmar trabajo a medias. Los cambios van a una pila que puedes volver a aplicar más tarde con git stash pop (aplicar y eliminar) o git stash apply (aplicar y conservar).
Prueba estos comandos en el terminal playground: un shell real en tu navegador, sin nada que instalar.
Sintaxis
| Command | What it does |
|---|---|
git stash | Guarda los cambios rastreados y limpia el árbol de trabajo |
git stash -u | También guarda los archivos sin seguimiento |
git stash push -m "msg" | Guarda con un mensaje descriptivo |
git stash push <file> | Guarda solo un archivo específico |
git stash list | Lista todos los stashes |
git stash pop | Vuelve a aplicar el último stash y lo elimina |
git stash apply | Vuelve a aplicar el último stash y lo conserva |
git stash drop | Elimina el último stash |
git stash clear | Elimina todos los stashes |
pop vs apply
| Behavior | git stash pop | git stash apply |
|---|---|---|
| Vuelve a aplicar los cambios | Sí | Sí |
| Elimina el stash después | Sí | No |
| Útil para reutilizar un stash | No | Sí |
Preguntas frecuentes sobre git stash
¿Qué hace git stash?
Guarda tus cambios sin confirmar en una pila y restablece tu árbol de trabajo al último commit, dándote un punto de partida limpio. Tus cambios no se pierden: quedan guardados y puedes volver a aplicarlos más tarde con
git stash pop o git stash apply. Es práctico cuando necesitas cambiar de rama pero aún no estás listo para confirmar.¿Cuál es la diferencia entre git stash pop y git stash apply?
Ambos vuelven a aplicar tu stash más reciente al árbol de trabajo.
git stash pop además elimina ese stash de la pila después, mientras que git stash apply lo deja en la pila para que puedas aplicarlo de nuevo en otro lugar. Usa pop para una restauración única y apply cuando quieras reutilizar el stash.¿git stash incluye los archivos sin seguimiento?
No por defecto: un
git stash normal solo guarda los archivos rastreados (modificados). Añade -u (git stash -u) para incluir los archivos sin seguimiento, o -a para incluir también los archivos ignorados. Sin esos flags, los archivos nuevos a los que no les has hecho git add permanecen en tu árbol de trabajo.¿Cómo aplico un stash específico?
Ejecuta
git stash list para verlos numerados como stash@{0}, stash@{1}, y luego git stash apply stash@{1} (o pop) para volver a aplicar uno en concreto. Cada stash también muestra la rama y el mensaje con los que se creó, para que puedas distinguirlos.¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar
git stash en un shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre paso a paso cómo gestionar el trabajo en curso.