Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Stash Introducción a Git

Imagina que estás trabajando en una funcionalidad importante, pero de repente surge una tarea urgente. No puedes hacer un commit porque los cambios no están listos, ¿cómo pausas tu trabajo sin perderlo? 😱

En esta lección, aprenderemos a guardar temporalmente los cambios con git stash y a restaurarlos cuando sea necesario. ¡Perfecto para situaciones imprevistas! ⏸️🔄


¿Qué es git stash y para qué sirve?

Git nos permite almacenar temporalmente cambios en los archivos sin agregarlos al repositorio. Esto es útil cuando necesitamos cambiar de contexto sin hacer un commit.

Supongamos que estás desarrollando una nueva funcionalidad en un archivo y de repente debes corregir un error en un área del código no relacionada con tu trabajo actual. No puedes hacer commit de tus cambios porque aún no están completos, pero no quieres perderlos. Aquí es donde git stash te permite:

  1. Guardar tus cambios actuales en un área temporal.
  2. Volver a un estado limpio del repositorio.
  3. Hacer los cambios urgentes.
  4. Restaurar los cambios guardados y retomar tu trabajo.

Guardar cambios con git stash

Para simular este proceso, hagamos lo siguiente:

  1. Creamos y agregamos un archivo al índice.
  2. Guardamos los cambios en el stash.
# Creamos un archivo y lo agregamos al índice
touch FILE.md
git add FILE.md

# Verificamos el estado del repositorio
git status

Salida esperada:

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   FILE.md

Ahora guardemos estos cambios con git stash:

git stash

Salida esperada:

Saved working directory and index state WIP on main: e7bb5e5 update README.md

git status

Verificamos nuevamente el estado con git status y notamos que el área de trabajo está limpia:

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

¿Qué sucedió?
El comando git stash no elimina los archivos; solo los almacena temporalmente en una sección dentro de .git, permitiéndonos retomar el trabajo más tarde.

💡 git stash no guarda archivos nuevos que no han sido añadidos con git add.

Restaurar cambios con git stash pop

Una vez que hemos realizado la tarea urgente y queremos recuperar nuestros cambios guardados, usamos:

git stash pop

Salida esperada:

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   FILE.md

Dropped refs/stash@{0} (b896d4a0126ef4409ede63857e5d996953fe75c5)

Ahora nuestros cambios han sido restaurados y podemos continuar trabajando.

Diferencia entre git stash apply y git stash pop:

  • git stash apply restaura los cambios pero mantiene< la copia en el stash.
  • git stash pop restaura los cambios y los elimina del stash.

Uso avanzado: Varios git stash

El stash funciona como una pila (estructura donde el último en entrar es el primero en salir). Podemos almacenar múltiples cambios y recuperarlos en orden inverso.

git stash   # Guardar cambios 1
# Modificar archivos
git stash   # Guardar cambios 2

git stash pop  # Recuperar cambios 2
git stash pop  # Recuperar cambios 1

También podemos ver la lista de elementos guardados con:

git stash list

Resultado:

stash@{0}: WIP on main: 123abc Cambios recientes
stash@{1}: WIP on main: 456def Otra modificación

Para restaurar un stash específico, usamos:

git stash apply stash@{1}

Para eliminar un stash que ya no necesitamos:

git stash drop stash@{1}

Resumen

  • git stash guarda cambios sin hacer commit, permitiéndote cambiar de contexto sin perder tu trabajo.
  • git stash pop restaura y elimina el último estado guardado en el
  • git stash apply restaura los cambios pero mantiene la copia en el stash.
  • Podemos ver los cambios guardados usando git stash list.
  • git stash funciona como una pila, permitiendo almacenar múltiples cambios y recuperarlos en orden inverso.

Con git stash, podemos trabajar de manera más eficiente sin preocuparnos por perder cambios no listos para el commit. ¡Pruébalo en tu propio flujo de trabajo!


Materiales adicionales

  1. Ocultar cambios (Stash) y limpieza.
  2. Alias de comandos en Git.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY