Back to features
Git-aware recovery

Undo your Git actions.Keep your momentum.

Staged the wrong changes? Committed too soon? Press ⌘Z to step back and keep going.

Undo history

0 of 3 actions completed

⌘Z

Stage selected lines

src/UndoManager.swift

Next

Commit changes

Add recovery flow

Queued

Create branch

feature/undo

Queued

Apply an action to see it enter the undo history.

01

Undo in Commit+

Files & staging

Move changes between your working tree and index without losing the path back.

  • Stage and unstage files
  • Stage and unstage individual hunks
  • Stage and unstage selected lines
  • Discard or remove files, then restore them from a snapshot
Illustration of stage selected changes
02

Undo in Commit+

History operations

Try a history operation, then step back cleanly when the result is not what you wanted.

  • Undo commits and squash operations
  • Reset HEAD with the right safety checks
  • Undo cherry-pick, merge, rebase, revert, and checkout
Illustration of commit changes
03

Undo in Commit+

Branches & remotes

Branch and remote actions keep a reversible entry in the same Git-aware history.

  • Create, delete, and rename local branches
  • Undo pull and publish/push operations
  • Restore upstream tracking when a branch is recreated
Illustration of delete branch
04

Undo in Commit+

Stashes

Stash changes to switch context, then undo the stash action as a single step.

  • Save working tree changes
  • Undo apply, pop, and drop stash actions
  • Restore the original stash payload when possible
Illustration of save stash
05

Undo in Commit+

Git Flow & worktrees

Undo Git Flow Start and Finish flows, including linked worktree creation.

  • Undo Start in the current working copy
  • Remove and recreate Git Flow worktrees
  • Reverse Finish merges, tags, and source-branch changes
Illustration of git flow finish

Undo with guardrails.

Commit+ checks your repository before recovery. If its state has changed, the action stays in your Undo history with an explanation.

Cmd-Z stays in context.

Undo Git actions with ⌘Z. Text and conflict edits keep their own undo history, so the shortcut follows your current context.