Guardar trabajo en curso en un Stash con Git

Cuando trabajamos con Git, no siempre tenemos los cambios listos para hacer un commit. A veces estamos en mitad de una tarea, aparece una urgencia, necesitamos cambiar de rama o simplemente queremos probar algo sin perder lo que ya hemos avanzado.

Para esos casos existe git stash, un comando que permite guardar temporalmente los cambios en curso y dejar el directorio de trabajo limpio, sin tener que crear un commit provisional. Es como poner tu trabajo “en pausa” para recuperarlo más tarde justo donde lo dejaste.

En esta guía veremos cómo usar git stash para guardar cambios, listar los stashes creados, recuperarlos, revisar diferencias y eliminar los que ya no necesitas.

Guardar cambios en un stash

<pre>git stash</pre>

Un stash es algo similar a un borrador, se trata de una forma rápida o sucia de preservar cambios en un espacio provisional de forma local con los que posteriormente podremos seguir trabajando.

Podemos tener varios borradores de nuestros cambios que podemos listar con el comando git stash list.

Listar stashes creados

git stash list

También podemos guardar un stash incluyendo un mensaje y poder diferenciarlo en el caso de que tengamos varios elementos en la lista de stashes.

Diferenciar stash con mensaje descriptivo

git stash save "mensaje descriptivo"

Para recuperar cambios de un stash tenemos varias opciones.

Recuperar cambios de un stash

Si lo que queremos es recuperar los últimos cambios desde el stash utilizaremos el siguiente comando:

git stash pop

O también podemos utilizar el siguiente comando:

git stash apply

Con ambos comandos podemos recuperar cambios de un stash específico.

git stash pop stash@{}
git stash apply stash@{}

Mostrar diferencias en un stash

Podemos ver las diferencias de un stash de forma resumida mediante el comando:

git stash show

O utilizar la opción -p (o –patch) para ver todas las diferencias de un stash:

git stash show -p

Al recuperar cambios de un stash éste no se elimina automáticamente por lo que es recomendable hacerlo de forma manual.

Para eliminar cambios tenemos varias opciones.

Eliminar cambios recientes

git stash drop

También podemos hacerlo especificando el índice de un stash en concreto.

git stash drop stash@{}

Eliminar todos los cambios

git stash clear

Para ampliar información, puedes consultar la documentación oficial de git stash, donde se detallan las opciones disponibles para guardar, listar, aplicar y eliminar stashes.

También puedes revisar el capítulo Stashing and Cleaning del libro oficial de Git, especialmente si quieres entender mejor cómo encaja el stash dentro del flujo de trabajo diario.

Preguntas frecuentes sobre git stash

¿Cuál es la diferencia entre git stash pop y git stash apply?

git stash pop recupera los cambios guardados y, si se aplican correctamente, elimina ese stash de la lista. En cambio, git stash apply recupera los cambios pero mantiene el stash guardado, por si quieres volver a utilizarlo más adelante.

¿Git stash guarda también archivos nuevos?

Por defecto, git stash guarda cambios en archivos que Git ya está siguiendo, pero no incluye archivos nuevos no trackeados. Para guardar también esos archivos, puedes usar git stash -u o git stash push -u.

¿Cuándo conviene usar git stash en lugar de hacer un commit?

Conviene usar git stash cuando los cambios todavía están incompletos, no quieres ensuciar el historial con un commit provisional o necesitas cambiar de rama rápidamente. Si el cambio ya está terminado, probado y tiene sentido dentro del historial del proyecto, lo más recomendable es hacer un commit.

Cómo evitar scroll horizontal en VS Code

Cuando estamos trabajando con nuestro código en el editor de VS Code por defecto es necesario mover el scroll horizontal para ver todo el código de una línea si la extensión de la misma es mayor al ancho de la ventana.

Podemos modificar éste comportamiento y que se produzcan saltos de línea conforme el código ocupe el total del ancho del editor.

Para hacerlo en Mac presionamos las teclas ⇧⌘P y en Windows F1.

Se abrirá un cuadro de dialogo desde el cual buscaremos > settings

Cómo evitar scroll horizontal con Visual Studio Code

Abrimos la configuración de usuario settings.json y añadimos una nueva línea con la siguiente configuración:

"editor.wordWrap": "on"

Eliminar la instalación global de Create React App

Banner “Guía rápida: Eliminar la instalación global de Create React App”. Fondo degradado púrpura; papelera con cubo naranja “CRA”. Comandos: npm uninstall -g create-react-app, yarn global remove create-react-app, pnpm remove -g create-react-app. Aviso: “No borra tus proyectos”. martagonzalez.dev.

Comando para desinstalar la instalación global de Create React App con npm, yarn y limpiar la caché sin romper tus proyectos.

Cada vez que ocurren algunos cambios en el ecosistema JavaScript, es fácil encontrarse con pequeños errores que frenan el flujo de trabajo. Uno bastante habitual aparece al intentar crear una nueva aplicación React y descubrir que existe una instalación global antigua de Create React App.

Esto puede generar conflictos porque, desde hace tiempo, la recomendación es evitar depender de una versión global instalada en tu equipo y usar directamente npx. Si estás trabajando en proyectos React, también puede venirte bien repasar esta guía sobre TypeScript: primeros pasos para mejorar la base técnica de tus aplicaciones.

El aviso suele aparecer de forma parecida a este mensaje:

You are running `create-react-app` 5.0.1, which is behind the latest release.

La instalación global de Create React App puede quedar desactualizada y provocar errores al iniciar nuevos proyectos. Por eso, lo más recomendable es eliminar esa instalación global, limpiar la caché y volver a ejecutar el comando correcto.

Eliminar la instalación global de Create React App con npm

Si instalaste Create React App de forma global usando npm, puedes eliminarlo con este comando

npm uninstall -g create-react-app

Este comando desinstala el paquete global de tu sistema. Es decir, elimina esa versión antigua que puede estar interfiriendo cada vez que intentas crear una nueva aplicación React.

Si sueles trabajar desde terminal, quizá también te interese este artículo sobre atajos y trucos para usar Visual Studio Code desde la terminal en Mac, porque ayuda a mejorar bastante el flujo de trabajo diario.

Eliminar Create React App global con Yarn

Si en lugar de npm utilizaste Yarn para instalarlo de forma global, el comando sería este:

yarn global remove create-react-app

El resultado es el mismo: quitar la instalación global para evitar que el sistema siga utilizando una versión antigua de Create React App.

Limpiar la caché 🧹

npx clear-npx-cache

Y con esto ya podemos continuar creando nuestra nueva aplicación con React ✌

npx create-react-app your-app-name

Por qué conviene evitar la instalación global

Instalar herramientas globalmente puede parecer cómodo, pero tiene un inconveniente importante: con el tiempo pueden quedar desactualizadas. Cuando eso ocurre, los nuevos proyectos pueden empezar con una configuración antigua o mostrar avisos inesperados.

Por eso, en muchos casos es preferible usar herramientas como npx, que permiten ejecutar paquetes sin mantener una instalación permanente en tu equipo. Este enfoque ayuda a mantener un entorno de trabajo más limpio y reduce los conflictos entre versiones.

En resumen: si Create React App te muestra un aviso de versión antigua, lo mejor es desinstalar la versión global, limpiar la caché y crear el proyecto con npx. Es una solución rápida, sencilla y suficiente para evitar conflictos al iniciar nuevas aplicaciones React.