- ¿Qué es git stash y para qué sirve?
- Guardar cambios con git stash
- Restaurar cambios con git stash pop
- Uso avanzado: Varios git stash
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?
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:
- Guardar tus cambios actuales en un área temporal.
- Volver a un estado limpio del repositorio.
- Hacer los cambios urgentes.
- Restaurar los cambios guardados y retomar tu trabajo.
Guardar cambios con git stash
Para simular este proceso, hagamos lo siguiente:
- Creamos y agregamos un archivo al índice.
- 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 applyrestaura los cambios pero mantiene< la copia en el stash.git stash poprestaura 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 stashguarda cambios sin hacer commit, permitiéndote cambiar de contexto sin perder tu trabajo.git stash poprestaura y elimina el último estado guardado en elgit stash applyrestaura los cambios pero mantiene la copia en el stash.- Podemos ver los cambios guardados usando
git stash list.git stashfunciona 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
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.