Docs

Snapshots

Un snapshot es un guardado local de tu árbol de trabajo que no es un commit. No entra nunca en tu historia, no llega nunca a un remoto, y existe para que la siguiente operación arriesgada sea reversible.

history · pushed c1 c2 c3 c4 snapshot a1f before rebase snapshot 9c2 before reset --hard reset --hard torii snapshot restore 9c2 snapshots live in .git/torii/snapshots · never committed · never pushed

Tomar uno y restaurarlo

torii snapshot create -n "before-refactor"
torii snapshot list
torii snapshot restore <id>
torii snapshot delete <id>

Los snapshots viven en <gitdir>/torii/snapshots, dentro de .git. Esa ubicación es deliberada: antes estaban junto al árbol de trabajo, donde add_all los barría hacia dentro de un commit — un repositorio acabó con un commit de 681 MB y un push que no terminaba. Dentro de .git, el indexado no puede alcanzarlos.

Stash, pero reversible

torii snapshot stash          # set the working tree aside
torii snapshot stash -u       # include untracked files
torii snapshot unstash
torii snapshot unstash <id> --keep    # apply it and keep the snapshot

Fallo conocido: snapshot stash a veces informa de éxito sin guardar. Hasta que se arregle, snapshot create -n "wip" es el camino fiable.

Deshacer

torii snapshot undo

Revierte la última operación de torii que tomó un snapshot. Eso cubre casi toda la superficie destructiva: resets duros, rebases, todas las reescrituras de torii history y eliminar un worktree.

Snapshots automáticos

torii config set snapshot.auto_enabled true
torii config set snapshot.auto_interval_minutes 30

El intervalo también se puede fijar por repositorio en .torii/auto-interval, que viaja con el proyecto en vez de con tu máquina.

Cuando el reflog no basta

Un snapshot cubre el árbol de trabajo. Para objetos que se commitearon y luego quedaron huérfanos —una rama borrada, un rebase abandonado, una entrada de reflog caducada— la base de datos de objetos aún los tiene hasta que se empaqueta:

torii history orphans      # walk unreachable objects
torii history compact      # pack and expire; run this only when you are sure

Ejecuta orphans antes de compact, no después.