Undo, redo and the safety net

Git rarely loses your work, but it is very good at making you feel like it did. Riff puts a floor under the scary operations so you can use them with a clear head.

Snapshots before anything risky

Every rebase, squash, cherry-pick, reset and force-push captures a reflog snapshot before it runs. The snapshot is taken first, automatically, every time. You never have to remember to protect yourself.

Undo and redo

  1. Run the operation.
  2. If the result is not what you wanted, use the one-click Undo to return to the snapshot.
  3. Changed your mind again? Redo is persisted, so you can step forward as well as back.

Both directions have drift protection: if the repository has changed since the snapshot, Riff will not blindly restore an outdated state over your newer work.

Force-push with a lease

Riff always force-pushes with --force-with-lease. If someone else pushed to the branch since you last fetched, the push is refused instead of overwriting their work. There is no setting for the unsafe version, on purpose.

Auto-stash for dirty trees

When an operation needs a clean tree and yours is not, Riff offers to stash your changes automatically so you can proceed without losing anything or juggling stashes by hand. Riff also supports named stashes, so the ones you keep around on purpose stay recognizable.

Resolving conflicts

When an operation stops on conflicts, Riff shows an operation banner with Continue and Abort, so the state of the repository is never a mystery.

  1. Open the conflicted-files panel to see every file that needs attention.
  2. For simple cases, resolve a file with Use Ours or Use Theirs.
  3. For anything subtler, use the inline three-way resolver and compose the result region by region: take ours, theirs, both, or write a custom resolution.
  4. When every file is resolved, continue the operation from the banner, or abort to step away cleanly.

Why this matters

History editing is useful. Squashed commits read better, rebased branches merge cleaner, and a well-timed reset saves a confusing afternoon. Most people avoid these tools because one mistake feels unrecoverable. With a snapshot behind every operation and Undo one click away, you can stop avoiding them.

See Getting started if you have not opened your first repository yet.