Arostik Logo
ArostikVLARCK

Micro-Soluciones Tecnológicas

Git y GitHubNivel: Principiante15 min de lección

¿Qué es Git Stash y Cómo Guardar Cambios Temporales?

Aprende a usar la pila de Git Stash: guardar borradores con mensajes personalizados, listar entradas acumuladas, restaurar cambios con `stash pop` o `stash apply` y desechar cambios obsoletos.

¿Qué es Git Stash y Cómo Guardar Cambios Temporales?
AROS STUDENT
E
Equipo de Ingeniería ArostikEspecialista en Sistemas y TI · Actualizado el 20 mar 2026
¿Qué es y para qué sirve?

Git Stash es un comando utilitario que almacena temporalmente en un cajón oculto (pila o stack) las modificaciones no confirmadas de tu directorio de trabajo y área de preparación, devolviendo el proyecto a un estado limpio sin necesidad de crear un commit artificial a medio terminar.

¿Por qué deberías aprenderlo y usarlo?

Es la solución perfecta ante interrupciones imprevistas: cuando estás en medio de una tarea experimental compleja y te piden cambiar de rama urgentemente para corregir un bug de producción, `git stash` guarda tu borrador en segundos y te permite moverte libremente.

Analogía de la Vida Real

Imagina que estás armando un rompecabezas de 2,000 piezas en la mesa del comedor y de repente llega tu familia para cenar: en lugar de desarmar las piezas o pegarlas con pegamento a la fuerza antes de tiempo, tomas una bandeja especial, colocas todas las piezas armadas encima y guardas la bandeja en el armario. La mesa queda limpia para cenar y más tarde sacas la bandeja para continuar exactamente donde ibas.

Explicación Paso a Paso del Tema

1

Guardar cambios en el cajón temporal

Limpia tu espacio de trabajo de forma instantánea sin comprometer tu código.

Si intentas cambiar de rama con `git switch main` teniendo cambios sin confirmar que chocan con la rama destino, Git bloqueará la operación. Ejecuta `git stash push -m "tu descripción"`. Tus archivos volverán al estado del último commit y tus modificaciones quedarán a salvo en la memoria interna de Git.

Comando de Terminal / Código
git stash push -u -m "borrador de animaciones"
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
pushOperación de pilaColoca una nueva entrada en la cima de la pila de stash
-u (o --include-untracked)Bandera de inclusiónIncluye también archivos nuevos que aún no han sido rastreados con git add
-m "descripción"EtiquetaAsigna un nombre recordatorio al borrador para no confundirlo en la lista
Consejo Profesional:

Usa siempre la bandera `-u` si durante tu sesión de trabajo creaste archivos o imágenes nuevas que quieras resguardar en el stash.

Error Común a Evitar:

Hacer `git stash` simple y olvidar que no incluye archivos nuevos sin rastrear (untracked); esos archivos quedarán flotando sueltos en el directorio.

2

Restaurar los cambios guardados (Pop vs Apply)

Recupera tu borrador una vez que hayas terminado la tarea urgente.

Al regresar a tu rama de trabajo original: usa `git stash pop` si deseas recuperar los cambios y borrarlos del cajón al mismo tiempo (el comportamiento más habitual). Usa `git stash apply` si deseas aplicar los cambios pero mantener una copia del borrador en el stash por seguridad.

Comando de Terminal / Código
git stash pop
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
popExtracción destructivaAplica los cambios del stash más reciente (stash@{0}) y lo elimina de la pila si no hay conflictos
applyExtracción no destructivaAplica los cambios pero conserva la entrada en la lista por si deseas reutilizarla en otra rama
Consejo Profesional:

Si tienes varios borradores guardados, puedes restaurar uno específico indicando su índice: `git stash pop stash@{2}`.

Error Común a Evitar:

Hacer `git stash pop` estando ubicado en una rama equivocada, aplicando tus cambios sobre código que no tiene relación.

3

Limpiar entradas antiguas del stash

Elimina borradores viejos que ya no necesites para no saturar la lista.

Si acumulaste borradores viejos que ya no sirven: usa `git stash drop stash@{0}` para eliminar una entrada específica sin aplicarla. Si deseas vaciar la pila entera de un solo golpe, utiliza `git stash clear`.

Comando de Terminal / Código
git stash drop stash@{0} && git stash list
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
dropEliminación puntualBorra la entrada especificada de la pila de stash
clearVaciado totalDestruye todas las entradas de stash acumuladas en el repositorio
Consejo Profesional:

No uses el stash como almacenamiento permanente a largo plazo; es exclusivamente una herramienta de transición para tareas cortas de horas o días.

Error Común a Evitar:

Ejecutar `git stash clear` pensando que deshace cambios; borra definitivamente todos los borradores almacenados en el stash.

Casos Prácticos Reales en Producción

Situaciones de ingeniería reales sin mención de presupuestos ficticios.

1Caso de Producción: Atención de Emergencia sin Commits Basura en el Historial

Escenario Real:

Un ingeniero estaba rediseñando un formulario complejo con 12 archivos a medio modificar cuando saltó una alerta crítica: un botón en la pasarela de pagos estaba roto en producción.

Solución de Ingeniería Aplicada:

En lugar de hacer un commit desordenado con mensaje 'WIP no funciona' en su rama, ejecutó `git stash push -u -m "refactor-formulario"`, cambió a la rama de hotfix, reparó el botón, desplegó la solución a producción, regresó a su rama y recuperó su trabajo intacto con `git stash pop`.

Fichas Nemotécnicas de Conceptos Clave

Glosario rápido para recordar los términos fundamentales de la lección.

git stash

Toma todos los cambios modificados y rastreados, los guarda en una pila interna y limpia el directorio de trabajo.

Saved working directory and index state WIP on feature: 4a12bc
git stash pop

Restaura los cambios guardados en la parte superior de la pila y los elimina inmediatamente del cajón de stash.

Devuelve tus archivos modificados y vacía esa entrada de la lista.
git stash list

Muestra todas las instantáneas temporales archivadas en la pila con sus índices identificadores (`stash@{0}`, `stash@{1}`).

stash@{0}: On main: WIP refactor de tabla
Autoevaluación Rápida3 preguntas

¿Qué es Git Stash y Cómo Guardar Cambios Temporales?

Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.

Aciertos: 0 / 3
1

¿Cuál es la principal ventaja de 'git stash' ante una urgencia mientras programas?

2

¿Qué bandera debe añadirse a 'git stash' para incluir también archivos nuevos que aún no han sido rastreados?

3

¿Qué diferencia existe entre 'git stash pop' y 'git stash apply'?

Preguntas Frecuentes (FAQ)

¿Puede ocurrir un conflicto al hacer 'git stash pop'?

Sí. Si la rama en la que estás aplicando el stash sufrió cambios en las mismas líneas mientras el borrador estuvo guardado, Git te avisará de un conflicto de merge habitual para que lo resuelvas a mano.

¿Se pierden los stashes si apago la computadora?

No. Los stashes quedan persistidos dentro de la base de datos local en la carpeta `.git` hasta que decidas borrarlos explícitamente con pop, drop o clear.

¿Puedo crear una rama nueva directamente a partir de un stash?

Sí, ejecutando `git stash branch nombre-de-la-rama stash@{0}`. Git creará la rama, se posicionará en ella, aplicará el stash y lo eliminará de la pila automáticamente.

Temas relacionados:#Git Stash#Borradores#Terminal#Flujo de Trabajo#Productividad