El comando git stash es una herramienta fundamental en Git que te permite guardar cambios no confirmados temporalmente, sin necesidad de hacer un commit. Esto es especialmente útil cuando necesitas cambiar de rama o realizar alguna tarea que requiera un espacio de trabajo limpio, pero no quieres perder tus cambios actuales.
A continuación, te explico cómo usar git stash en diferentes escenarios:
1. Guardar cambios con git stash
Cuando ejecutas git stash, Git almacena las modificaciones locales (incluyendo las del área de staging) y restaura el directorio de trabajo a su último commit confirmado. Es como una pausa temporal en tu trabajo actual.
git stash
2. Aplicar cambios guardados con git stash apply
Una vez que hayas terminado lo que necesitabas hacer, puedes restaurar los cambios guardados co
git stash apply
Esto aplica los cambios del stash sin eliminarlos de la lista de stashes.
3. Aplicar y eliminar con git stash pop
Si quieres aplicar los cambios y al mismo tiempo eliminar el stash, usa:
git stash pop
Este comando restaura los cambios y borra automáticamente el stash aplicado.
4. Listar todos los stashes con git stash list
Puedes ver todos los stashes guardados con:
git stash list
Este comando muestra una lista de todos los stashes, junto con sus identificadores.
5. Restaurar un stash específico
Si tienes múltiples stashes, puedes aplicar uno en particular usando su índice:
git stash apply stash@{1}
6. Eliminar un stash específico
Si ya no necesitas un stash en particular, puedes eliminarlo de la lista con:
git stash drop stash@{1}
7. Eliminar todos los stashes
Para limpiar todos los stashes guardados:
git stash clear
Este comando borra por completo el historial de stashes.
8. Crear un stash con un mensaje descriptivo
Para facilitar la identificación de los stashes, puedes añadir una descripción:
git stash push -m «WIP: Cambios en la página de login»
9. Guardar solo cambios rastreados
Si no deseas incluir archivos no rastreados en tu stash, usa el siguiente comando:
git stash push –keep-index
Esto guarda únicamente los archivos que están en el área de staging.
Resumen
- Guardar temporalmente cambios no confirmados: git stash.
- Listar todos los stashes guardados: git stash list.
- Restaurar el último stash: git stash pop o git stash apply.
- Eliminar un stash específico: git stash drop <stash@{n}>.
- Limpiar todos los stashes: git stash clear.
git stash es una herramienta indispensable cuando necesitas cambiar de contexto rápidamente, mientras mantienes los cambios actuales seguros para retomarlos más adelante.