Con git stash, puedes almacenar en caché los cambios sin co­n­fi­r­mar­los di­re­c­ta­me­n­te. También es posible tener varios stashes en un mismo proyecto.

Compra y registra tu dominio ideal
  • Ce­r­ti­fi­ca­do SSL Wildcard gratis
  • Registro privado
  • Función Domain Connect para una co­n­fi­gu­ra­ción DNS si­m­pli­fi­ca­da gratis

¿Qué es git stash?

No­r­ma­l­me­n­te, el trabajo en Git funciona así: haces cambios en tu re­po­si­to­rio local, los pruebas cui­da­do­sa­me­n­te y luego los envías a la rama principal. Por desgracia, el trabajo no siempre se de­sa­rro­lla de forma lineal. En algunas ci­r­cu­n­s­ta­n­cias, es posible que estés tra­ba­ja­n­do en un sitio, pero que luego tengas que tra­s­la­dar­te a otra rama antes de poder completar la función de la primera rama. En este caso, co­m­pro­me­te­r­se no sería la opción correcta, ya que se añadirían cambios inaca­ba­dos, lo que generaría mucha confusión. La solución a esto es git stash. El comando guarda los cambios iniciados y los restaura por ti.

Esto afecta a todos los cambios que aún no se han co­n­fi­r­ma­do. Si luego quieres revertir estos archivos, no tienes más que re­cu­pe­rar­los de nuevo del git stash y terminar los cambios a tu gusto. De esta manera no pierdes ningún avance, conservas tu trabajo y al mismo tiempo tienes la libertad de seguir tra­ba­ja­n­do con fle­xi­bi­li­dad en otros puntos. Sin git stash, ob­te­n­drías un mensaje de error durante un git checkout o incluso perderías cambios im­po­r­ta­n­tes.

Sintaxis y fu­n­cio­na­li­dad de git stash

Git stash actúa como una especie de caché para tu rama actual. La sintaxis básica es la siguiente:

git stash

Te mo­s­tra­re­mos cómo funciona paso a paso con un sencillo ejemplo. Imagina que estás tra­ba­ja­n­do con dos ramas. Estás rea­li­za­n­do cambios en la primera rama, pero tu equipo te informa de que también hay que cambiar algo en la segunda rama. Con git stash se procede de la siguiente manera:

  1. Guarda los cambios en la primera rama.
  2. Utiliza el comando “git stash”.
  3. Cambia a la segunda rama y realiza allí los cambios ne­ce­sa­rios.
  4. Confirma tus cambios en la segunda rama.
  5. Vuelve a la primera rama.
  6. Utiliza el comando “git stash pop”, para recuperar el progreso guardado.

Más opciones de git stash

Además de la variante explicada an­te­rio­r­me­n­te, git stash conoce algunas opciones más. Las más im­po­r­ta­n­tes son:

git stash -u También tiene en cuenta los archivos que no han sido ra­s­trea­dos.
git stash -a Tiene en cuenta todos los archivos que fueron ignorados o no fueron ra­s­trea­dos.
git stash -p Permite se­le­c­cio­nar y almacenar solo de­te­r­mi­na­dos archivos.

Lista de stashes

El uso de git stash no está limitado. Puedes utilizar el comando varias veces y así almacenar numerosos pasos de al­ma­ce­na­mie­n­to. A co­n­ti­nua­ción, tienes la po­si­bi­li­dad de hacer una lista de tus git stashes y así obtener una buena visión general de tu al­ma­ce­na­mie­n­to. Este es el comando apropiado:

git stash list

Las entradas se muestran en orden cro­no­ló­gi­co inverso. Por lo tanto, el git stash actual aparecerá en primer lugar.

No­r­ma­l­me­n­te, cada stash se ide­n­ti­fi­ca si­m­ple­me­n­te como “WIP” (Work In Progress). Dado que esto puede resultar confuso rá­pi­da­me­n­te desde que haya varios git stashes, es aco­n­se­ja­ble pro­po­r­cio­nar a cada stash una de­s­cri­p­ción. Este es el comando co­rre­s­po­n­die­n­te:

git stash save "Aquí tu descripción"

git stash pop y apply

Con el comando “git stash pop”, se se­le­c­cio­na el último git stash y se muestra de nuevo. Sin embargo, si quieres volver a otro stash, puedes es­pe­ci­fi­car­lo. Por ejemplo, si quieres que se muestre el segundo git stash, establece el valor en 1 (ya que cuenta desde cero). Se verá así:

git stash pop stash@{1}

Una al­te­r­na­ti­va a “pop” es “apply”. La di­fe­re­n­cia: “pop” borra el git stash re­s­pe­c­ti­vo de la memoria y lo devuelve a la rama actual. “Apply” mantiene el stash en la memoria.

Limpiar git stash

Es­pe­cia­l­me­n­te porque tienes la opción de crear múltiples git stashes, es im­po­r­ta­n­te que vayas vaciando el git stash para que no se llene demasiado. Hay dos comandos que puedes usar para esto:

git stash clear

Con este comando se vacía todo el git stash.

Si solo quieres eliminar un stash es­pe­cí­fi­co de la lista, este es el comando apropiado:

git stash drop <stash_id></stash_id>

Abrir git stashes

Puedes obtener el resumen de tu git stash con el siguiente comando:

git stash show

Para obtener in­fo­r­ma­ción adicional sobre el diff completo, utiliza este comando:

git stash show -p

Una he­rra­mie­n­ta útil para trabajar con Git

De este modo, git stash facilita trabajar en un proyecto y garantiza que no se pierdan ni siquiera los cambios inaca­ba­dos. En nuestro artículo sobre comandos Git en­co­n­tra­rás más comandos útiles. Para el uso regular del sistema de control de versiones, también se re­co­mie­n­da nuestra hoja Git Cheat de­s­ca­r­ga­ble en PDF.

Consejo

Deploy Now de IONOS es la mejor solución para tus páginas web y apli­ca­cio­nes. Be­ne­fí­cia­te de una co­n­fi­gu­ra­ción rápida, flujos de trabajo op­ti­mi­za­dos y máxima es­ca­la­bi­li­dad. Además, puedes elegir entre di­fe­re­n­tes tarifas.

Ir al menú principal