Aprende a usar este comando de Git para guardar cambios locales temporalmente.
git stash
es un comando de Git que permite guardar temporalmente los cambios no confirmados en el directorio de trabajo sin comprometerlos en un commit. Esto es útil cuando trabajas en una rama y has realizado modificaciones en archivos sin hacer un commit, puede surgir la necesidad de cambiar de contexto, ya sea para cambiar de rama, actualizar el código o resolver un problema urgente. Sin embargo, Git no permite cambiar de rama si hay cambios sin confirmar a menos que se realice un commit o se descarte el trabajo.
Aquí es donde git stash
resulta útil. Al ejecutar git stash
, Git guarda los cambios en un área temporal llamada “stash” y deja el directorio de trabajo limpio, como si no se hubieran hecho cambios. Más tarde, estos cambios pueden recuperarse y aplicarse nuevamente a la rama en la que estabas trabajando.
Algunos escenarios en los que git stash
es útil incluyen:
git pull
) para evitar conflictos con cambios locales.Aunque conceptualmente pueden parecer comandos parecidos, pues ambos guardan cambios, en realidad tienen funciones bien distintas. Para clarificarlo puedes ver esta tabla:
Aspecto | Commit | Git Stash |
---|---|---|
Persistencia | Permanece en la historia del repositorio | Temporal, no aparece en el historial |
Contexto | Representa un punto de control en la historia del proyecto | Es un almacenamiento temporal de cambios |
Colaboración | Se comparte con otros colaboradores si se sube al repositorio | Es local y no afecta a otros |
git stash list
.git stash
Esto guarda los cambios no confirmados y limpia el directorio de trabajo.
git stash list
Muestra una lista de los stashes guardados con su identificador.
git stash pop
Aplica los cambios del último stash y lo elimina de la lista.
git stash apply
Esto aplica los cambios, pero mantiene el stash en la lista.
git stash push -m "Corrigiendo bug en el login"
Esto ayuda a identificar más fácilmente los cambios guardados.
git stash drop stash@{0}
Borra un stash en particular.
El comando git stash
es una herramienta muy útil para gestionar cambios temporales en Git sin necesidad de hacer commits innecesarios. Su uso es especialmente útil cuando necesitas cambiar de rama, actualizar el código o realizar pruebas rápidas. Sin embargo, es importante recordar que los cambios en el stash son temporales y deben ser aplicados antes de quedar olvidados.
Personalmente sólo uso git stash
en el caso más común que hemos mencionado más arriba, cuando tienes que hacer pull
y tienes cambios locales sin hacer commit parar rápidamente hacer traer los cambios y luego hacer git stash pop
para seguir trabajando.