guías de git
Git stash: guarda cambios, cambia de rama y restaura tu trabajo
Una solución urgente interrumpe el trabajo inacabado. Guárdelo con Git stash, restaure la entrada correcta más tarde y comprenda las aplicaciones, las ventanas emergentes y los conflictos antes de hacer clic. Incluye un tutorial visual GitTree.
Git stash guarda los cambios no confirmados para que puedas trabajar en otra cosa y luego recuperar esos cambios. Comience con git stash push -m "WIP: checkout form"; restaure con git stash apply cuando desee conservar la entrada guardada, o git stash pop cuando desee eliminarla después de una restauración exitosa. Agregue -u cuando los archivos nuevos sin seguimiento también pertenezcan al trabajo.
Esta guía utiliza una interrupción del formulario de pago como ejemplo: pausar el formulario, corregir un error de producción en otra rama y luego regresar al formulario. El tutorial visual utiliza GitTree, el cliente que creamos para macOS, Windows y Linux. La gestión de alijo está incluida en el plan gratuito; Las compilaciones oficiales actuales requieren iniciar sesión.
Cuándo usar alijo, un compromiso o un árbol de trabajo
| Situación | uso | Razón |
|---|---|---|
| Una breve interrupción con ediciones inacabadas. | alijo | Borre temporalmente los archivos sin agregar una confirmación de rama normal |
| Trabajo que necesitas compartir o realizar una copia de seguridad de forma remota | Comprometerse y empujar a una rama apropiada | Los alijos permanecen locales; un push normal no los sube |
| Dos tareas que quieres abrir a la vez | árbol de trabajo | Cada tarea tiene su propia carpeta de trabajo. |
Para tareas paralelas más largas, utilice la guía del árbol de trabajo. Un alijo es un almacenamiento temporal conveniente, pero no debe ser la única copia de seguridad de un trabajo valioso. Nombra las entradas después de la tarea, porque stash@{0} significa la última entrada y los números cambian a medida que cambia la lista.
Guardar cambios y cambiar de rama: un ejemplo completo
Primero inspeccione git status: un alijo predeterminado incluye modificaciones a los archivos rastreados, incluidas las ediciones preparadas, pero deja los archivos ignorados y sin rastrear. En este ejemplo, el formulario incluye un archivo recién creado, así que use -u. Estos comandos suponen que feature/checkout y hotfix/payment ya existen; sustituya sus propios nombres de sucursales.
git status
git stash push -u -m "WIP: checkout form"
git stash list
git status
git switch hotfix/paymentTermine, pruebe y confirme la revisión antes de regresar. Verifique la lista de alijo y su diferencia antes de realizar la solicitud: es posible que otra tarea haya creado una entrada más nueva mientras tanto. Citar un selector como "stash@{0}" también evita que los shells interpreten sus caracteres especiales.
git switch feature/checkout
git stash list
git stash show -p --include-untracked "stash@{0}"
git stash apply "stash@{0}"
git statusGit stash apply vs pop: ¿cuál deberías elegir?
| Comando | Restaura archivos | Mantiene el alijo |
|---|---|---|
git stash apply "stash@{0}" | si | si |
git stash pop "stash@{0}" | si | No, después del éxito; Sí, si los conflictos lo detienen. |
git stash apply --index "stash@{0}" | Sí, e intenta restaurar el estado provisional. | si |
Para un cambio importante sin terminar, solicítelo primero, revíselo y pruébelo, luego elimine la entrada guardada una vez que haya confirmado el trabajo restaurado. Aplicar dos veces puede crear conflictos o repetir cambios; inspeccione los archivos de trabajo antes de volver a intentarlo. Ni aplicar ni pop envía nada a un servidor.
Guarde archivos sin seguimiento, archivos específicos o cambios preparados
git stash push -u -m "WIP: include new files"
git stash push -m "WIP: checkout only" -- src/checkout.ts
git stash push --staged -m "WIP: staged changes only"
git stash push --keep-index -m "WIP: keep staged work ready"Estos son comandos alternativos, no una secuencia para ejecutar juntos. Una ruta después de -- limita el alijo a esa ruta. --staged guarda solo los cambios preparados; --keep-index deja los cambios preparados en su lugar para que puedas probarlos o confirmarlos mientras deja de lado otras ediciones. Resuelven diferentes problemas. Es posible que las instalaciones anteriores de Git no admitan --staged; consulte git --version y la ayuda para su versión instalada.
Cómo ocultar y restaurar cambios en GitTree
Inspeccionar el trabajo en progreso.
Abra la fila
// WIP, revise los archivos y elija la pestaña Stash junto a Confirmar.Elige el alcance
Seleccione Todos los cambios, Solo cambios preparados o Solo los archivos seleccionados. Habilite Incluir archivos sin seguimiento cuando nuevos archivos pertenezcan a la tarea.
Dale un nombre de tarea
Ingrese un mensaje como WIP: formulario de pago, luego elija Stash. Inspeccione los archivos que quedaron antes de cambiar de rama; un alijo parcial no borra todo el trabajo.
Vista previa antes de restaurar
En la sección Stashes, haga clic derecho en la entrada correcta y elija Mostrar Stash para inspeccionar sus archivos y compararlos. Compruebe que la sucursal receptora sea correcta.
Aplicar, revisar y finalizar
Elija Aplicar Stash para conservar la entrada o Pop Stash para eliminarla después del éxito. Revise los cambios, ejecute sus pruebas y confirme cuando esté listo.

¿Quieres seguir estos pasos con tu propio repositorio? Descarga GitTree, inicia sesión y abre la carpeta del repositorio. Tus alijos existentes siguen siendo alijos de Git normales, visibles también desde la terminal.
Cómo resolver conflictos de git stash pop
Un alijo puede entrar en conflicto cuando la rama de destino cambió las mismas líneas. Un pop fallido mantiene el alijo, pero es posible que ya se hayan aplicado algunos cambios. No lo explotes repetidamente. Ejecute git status, resuelva cada archivo no combinado y prepare solo las resoluciones deseadas. La guía de conflictos de fusión explica los marcadores y el editor de tres vías.
git status
git diff --name-only --diff-filter=U
# Edit and test each conflicted file, then stage its resolution:
git add -- src/checkout.ts
git diff --cached
git statusNo hay git stash --continue o git stash --abort. Una vez que se resuelvan los archivos, revíselos y confirme normalmente. Si desea abandonar el intento, conserve cualquier trabajo que existiera antes de la aplicación e inspeccione cada ruta modificada antes de descartar nada. Un restablecimiento completo general puede borrar ediciones no relacionadas. Cuando el destino se ha desviado demasiado, git stash branch rescue/checkout "stash@{0}" se restaura en una nueva rama en la base original; una operación exitosa elimina esa entrada oculta.
Eliminar un alijo solo después de comprobar el resultado
Utilice git stash list nuevamente antes de git stash drop "stash@{0}": es posible que la posición haya cambiado. git stash clear elimina la lista completa. La recuperación de un alijo caído en Git simple es incierta y depende de si sus objetos todavía existen; no confíe en encontrarlo más tarde. En GitTree, Delete Stash mantiene la entrada eliminada en instantáneas de recuperación para que Deshacer pueda restaurarla. Esa recuperación específica de la aplicación no hace que la eliminación del terminal sea una acción recuperable garantizada. Para opciones de recuperación más amplias, consulte deshacer errores de Git.
Preguntas frecuentes
¿Git stash guarda archivos sin seguimiento?
No por defecto. Utilice git stash push -u o incluya archivos sin seguimiento en GitTree. Los archivos ignorados requieren una elección por separado; -u no los incluye.
¿Puedo aplicar un alijo a otra sucursal?
Sí. Consulta la sucursal de destino y aplica la entrada allí. Primero revise su diferencia: el alijo puede depender del código ausente en esa rama.
¿Git stash pop elimina el alijo en caso de conflicto?
No. Git conserva la entrada cuando la aplicación entra en conflicto. Resuelva y verifique los archivos de trabajo antes de eliminar la entrada usted mismo.
¿Se envía un alijo a GitHub?
Un git push normal no carga reservas. Confirme el trabajo en una rama adecuada y envíe esa rama si necesita una copia remota.
¿La gestión de alijo GitTree es gratuita?
Sí, la gestión del alijo es parte del plan gratuito. Las compilaciones oficiales actuales requieren iniciar sesión; GitTree No se requiere Pro para este flujo de trabajo de Git local.
Fuentes
Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 28 de octubre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.