Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git stash [push [-m <msg>] [-u]]
git stash pop [<stash>]
git stash list
git stash drop [<stash>]

Descripción

El comando git stash guarda tus modificaciones no commiteadas (staged y no staged) en una pila, dejando un árbol de trabajo limpio. Esto es útil cuando necesitas cambiar de branch o hacer pull pero no estás listo para commitear.

El stash es una pila local: cada git stash empuja una nueva entrada (stash@{0}, stash@{1}, ...). Recupera con git stash pop (aplicar y borrar) o git stash apply (aplicar manteniendo la entrada).

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

Opción / SubcomandoDescripción
push -m <msg>Stash with a descriptive message.
-uInclude untracked files.
-aInclude ignored files too.
listShow all stash entries.
show [-p] <stash>Display contents of a stash.
pop / applyRe-apply a stash; pop also drops it.
drop <stash>Delete a stash entry.
branch <name>Create a branch from a stash.

Ejemplos

git stash push -m "WIP: refactor parser"
# Save current work with a label

git stash list
# stash@{0}: On main: WIP: refactor parser

git stash pop
# Re-apply the most recent stash and remove it

git stash branch temp-branch stash@{1}
# Create a new branch from a stash that conflicts

Errores comunes

Forgetting that stash doesn't include untracked files by default, then losing them when running git clean. Use -u. Popping a stash that conflicts can leave a complicated state — consider apply first so the stash isn't dropped if things go wrong. Long-lived stashes accumulate; review with git stash list regularly.

Comandos relacionados

git commit, git switch, git restore, git clean