Git Stash
El comando git stash es una herramienta útil en Git que te permite guardar temporalmente los
cambios en tu directorio de trabajo sin necesidad de comprometerlos en el repositorio.
Esto puede ser especialmente útil cuando estás en medio de una tarea y necesitas cambiar de
contexto rápidamente sin perder tu trabajo en progreso. A continuación, te explicaré en detalle
cómo funciona el comando git stash y cómo puede ser útil:
¿Cómo funciona git stash?
Cuando ejecutas git stash, Git guarda todos los cambios que has realizado en tu directorio de
trabajo desde el último commit en una pila de almacenamiento temporal llamada “stash”. Estos cambios
incluyen tanto los cambios en los archivos rastreados como los archivos que aún no han sido
agregados al índice de Git (staged).
Para utilizar git stash, simplemente ejecutas el comando sin argumentos:
git stashEsto guardará tus cambios en el stash y limpiará tu directorio de trabajo, dejándolo en el mismo estado en que se encontraría si hubieras hecho un commit. Una vez que hayas terminado con el cambio de contexto y quieras volver a tu trabajo en progreso, puedes aplicar los cambios almacenados en el stash.
¿Cómo aplicar cambios almacenados en el stash?
Para aplicar los cambios almacenados en el stash de nuevo en tu directorio de trabajo,
puedes utilizar el comando git stash apply o git stash pop. La diferencia entre estos
dos comandos radica en cómo manejan el stash después de aplicar los cambios:
-
git stash apply: Aplica los cambios almacenados en el stash en tu directorio de trabajo, pero deja el stash intacto. Esto significa que los cambios seguirán estando en el stash después de aplicarlos. -
git stash pop: Aplica los cambios almacenados en el stash en tu directorio de trabajo y elimina automáticamente el stash de la pila de almacenamiento. Esto significa que los cambios ya no estarán disponibles en el stash después de aplicarlos.
git stash applyo
git stash popAhora, para eliminar un stash, hay un par de opciones. Puedes eliminar un stash específico usando
git stash drop seguido del identificador del stash que deseas eliminar. Por ejemplo:
# Lista todos los stashes guardadosgit stash list
# Elimina un stash específico (en este caso, el primer stash)git stash drop stash@{0}También puedes eliminar todos los stashes a la vez usando git stash clear:
# Elimina todos los stashes guardadosgit stash clear¿Cuándo es útil utilizar git stash?
-
Cambio de contexto rápido: Si estás trabajando en una tarea y necesitas cambiar a otra tarea urgentemente sin comprometer tus cambios, puedes utilizar
git stashpara guardar tus cambios temporalmente y luego volver a ellos más tarde. -
Experimentación: Si quieres realizar un experimento o probar algo nuevo en tu código sin afectar el trabajo actual, puedes guardar temporalmente tus cambios con
git stash, realizar las pruebas y luego volver a aplicar los cambios si son exitosos. -
Resolución de conflictos: En ocasiones, puede ser útil guardar temporalmente tus cambios antes de fusionar o rebasar cambios de otras ramas para evitar conflictos. Una vez resueltos los conflictos, puedes aplicar tus cambios nuevamente con
git stash apply.
En resumen, git stash es una herramienta poderosa que te permite guardar temporalmente tus cambios
en el directorio de trabajo, lo que te permite cambiar de contexto rápidamente sin perder el
trabajo en progreso. Es una función valiosa en el flujo de trabajo de Git, especialmente en
situaciones donde necesitas manejar múltiples tareas o realizar experimentos sin comprometer
tus cambios en el repositorio.