Git School · FluxGit

Puntos de restauración y stash en Git

FluxGit ·

Los bloques son casos distintos, no un único script. Elige el que encaja con tu repositorio. Sustituye ramas, rutas y VERIFIED_COMMIT antes de usarlos. Los comandos de cancelación solo corresponden a su operación activa; no ejecutes ambas alternativas.

Respuesta breve

Los puntos de restauración de FluxGit registran estados para recuperar operaciones de historial cubiertas. Un stash manual guarda cambios locales para otro momento y es un recorrido distinto.

Ejemplo y condiciones

El tutorial G12 muestra un cambio de rama con modificaciones tracked pendientes. Los archivos untracked siguen en el directorio salvo que los incluyas expresamente.

Inspecciona antes de cambiar

Inspecciona git status --short y git diff. Decide qué guardar antes de cambiar de rama; no confundas un directorio limpio con un respaldo permanente.

git status --short
git diff

Conserva una referencia o checkout separado

Crea un stash manual con un mensaje reconocible. git stash push guarda los cambios tracked; usa -u solo cuando quieras incluir también los archivos untracked.

git stash push -m "school/manual-before-switch"
git stash list

Primer flujo

Comprueba git stash list y cambia a la rama de destino. Al volver, revisa el contexto antes de aplicar la entrada seleccionada.

git switch target-branch

Elige deliberadamente la otra opción

git stash apply conserva la entrada. git stash pop la elimina solo después de una aplicación correcta; si hay conflicto, la entrada se conserva.

git stash show --patch 'stash@{0}'
git stash apply 'stash@{0}'

Límites y excepciones

Los puntos automáticos cubren reset, rebase, cherry-pick, revert y merge por sus rutas protegidas. Discard y clean no crean un Flux restore point universal.

Conflictos y limpieza

Ante un conflicto, revisa los archivos y resuélvelo deliberadamente. No repitas pop ni borres la entrada para esconder el estado pendiente.

Verifica el resultado

Comprueba archivos, índice y pruebas después de aplicar el stash. Elimina una entrada solo cuando hayas verificado que el trabajo deseado está conservado.

git status --short
git diff
git diff --cached

Preguntas habituales

El stash no se publica automáticamente con un push y no sustituye una copia de seguridad. La recuperación depende de que el estado local relevante siga disponible.

Revisa la operación en FluxGit

Safety Timeline combina movimientos del reflog, riesgos y puntos de restauración. Los datos de estos puntos permanecen locales; usa el preview y el contexto de recuperación específico de cada operación.

Documentación oficial de Git

Git School · 1:51

Cambiar de rama en Git con trabajo a medias: git stash, de forma visual

Guarda un cambio seguido por Git con stash, ponle un nombre, cambia de rama y vuelve para recuperarlo con pop. Verás por qué los archivos sin seguimiento permanecen y la diferencia entre apply y un pop correcto. Incluye los comandos de terminal.

Cambiar de rama en Git con trabajo a medias: git stash, de forma visual
Narración en inglés. YouTube ofrece subtítulos manuales en 11 idiomas. Esta transcripción está en español.

Ver en YouTube — abre una pestaña nueva

Grabado en un repositorio de prueba. Voz en inglés y subtítulos en español.

Leer la transcripción de la narración
  1. 00:03 Estás a mitad de un cambio y necesitas mirar otra rama ahora mismo. No está listo para commit y no quieres perderlo.
  2. 00:12 Aquí está el cambio a medias, en app.py.
  3. 00:19 Un stash guarda los cambios seguidos por Git. Aquí guarda el cambio de app.py y lo retira de la carpeta de trabajo. Los archivos sin seguimiento siguen en el disco. Un pop correcto restaura el cambio y elimina su entrada de stash.
  4. 00:36 Stash current changes, y ponle un nombre que reconozcas después.
  5. 00:48 Cambia a la otra rama. El cambio del archivo seguido está en el stash. El archivo sin seguimiento permanece en la carpeta.
  6. 00:58 Terminado allí. De vuelta a main.
  7. 01:05 Haz pop del stash. El cambio vuelve a app.py, y el stash desaparece.
  8. 01:15 ¿Apply o pop? Apply restaura tus cambios y conserva la entrada de stash. Pop solo elimina la entrada si los cambios se aplican correctamente. Si hay conflictos, el stash se conserva.
  9. 01:29 En la terminal: git stash push con un mensaje, cambia de rama y vuelve, y luego git stash pop.
  10. 01:37 Resumen. El trabajo sin terminar va a la estantería, no a un commit a medias. Siguiente lección: limpiar tus commits antes del pull request.

Flujos relacionados

Descargar FluxGit