What replaces git stash, reset and reflog

Three habits with three different answers.

Written By Dustin

Last updated 32 minutes ago

git stash — nothing to do

tovio switch performs a safe three-way checkout and never loses uncommitted work. Switch lanes with a dirty tree and your edits come with you.

tovio stash   # exists, explains this, does nothing

git reset — it depends which one you meant

Git overloads reset across three unrelated jobs. TOVIO splits them.

What you meantTOVIO
git reset --hard to undo an operationtovio undo
git reset <file> to unstageNothing — there is no index.
git checkout -- <file> to throw away edits to one filetovio restore <file>. It rewrites no history; it only discards uncommitted edits to that path.
Undo a change that already landed and is sharedtovio revert <rev>. It commits the inverse forward, leaving history intact. Reverting a merge needs --mainline <n> to say which side to keep.
tovio undotovio undo --to <op-id>tovio redo

undo reverses the last operation — not just a commit, but any operation recorded in the op-log, including a land, a rebase, a lane delete or a resolve. --to rewinds to before a specific operation, undoing every step back to it at once. Everything is redoable, so undo is not a one-way door the way a hard reset is.

git reflog — the op-log

The op-log is the durable record undo and redo walk. It is not a safety net bolted on beside history; it is the mechanism.

tovio explain undotovio explain undo --limit 50tovio explain undo --to <op-id>

That prints every operation, the undo/redo head, and the state undo would restore. The last form previews the restore before you commit to it. Where Git's reflog is a local convenience that expires, the op-log is the operation history itself.

The practical difference

In Git, recovering from a mistake means knowing that reflog exists and reading hashes out of it. In TOVIO the answer to "I did something wrong" is tovio undo, and if that was wrong too, tovio redo. The op-log is local and never synced.