Retcon — Effortlessly rewrite Git history

Retcon

Drag, drop, done.

Rewrite Git history with a single drag-and-drop. Undo anything with Z. All speed, no bumps.

Download Retcon 1.6

14-day trial • Requires macOS 14.3+

Let your code do the talking.

The Git history is a communication tool. And with Retcon, your word is clear. What prompted that refactor? How did these design choices come about? What the code can't say, the Git history recounts in great detail.

The trick is, your first draft is never your last. Commits begin their life as a stream of consciousness, created whenever they're needed, worded as best as the moment allows. They hold your code, certainly, but they don't showcase it.

So you rewrite. You take your hard work, and present it for all it's worth. Each decision, tradeoff, insight—now freed from your mind, illuminating your code with meaning and intent.

All of that, with none of the effort.

What people are saying.

Typing is rewording.

From small refinements to sweeping reworks, you do everything faster in Retcon. Edits take fewer steps, and don't mess with the repo's state.

To reword in Retcon:

  1. Select the commit to reword. Its details are displayed.
  2. Enter the new message.

All done. Your files and stage have been left intact.

To reword in a conventional GUI:

  1. If there are uncommitted changes, click Stash.
    A window opens. Choose OK.
  2. Right-click the commit to reword, and choose Reword.
  3. A window opens with the commit’s current message. Enter the new message, and confirm.
  4. If you stashed changes in step 1, click Restore Apply to restore them.
    A window opens. Choose OK.

All done. Your uncommitted changes are restored, but the stage may have been reset.

To reword through the Git CLI:

  1. If there are uncommitted changes, run git reset, then git stash.
    This unstages all changes, and sets them aside.
  2. Run git log. The current branch's history is displayed.
  3. Find the commit to reword in the list. Copy its hash, and exit.
  4. Run git rebase -i COPIED_HASH^ to start an interactive rebase.
  5. An editor opens with a commit list. Change the first commit’s action to r. Save and exit.
  6. A new editor opens with the commit’s current message. Enter the new message. Save and exit.
  7. If you stashed changes in step 1, run git stash pop to restore them.

All done. Your uncommitted changes are restored, but the stage has been reset.

The cheatsheet you won’t need.

Retcon frees you to quickly experiment by making it easy to undo mistakes. So easy, in fact, that you already know exactly how.

Sweat-free conflict resolution.

Retcon surfaces crystal-clear context at every step, and gives you the tools to quickly resolve any conflict—or even avoid them entirely.

Retcon doesn’t stop at telling you that a file has conflicts: it actually shows its detailed diff.

Get full context around the pausing commit: see the successfully applied parents, and what commits will be inserted next, including any mutations.

Don’t wait to find out whether your changes cause conflicts. Each manipulation is applied instantly, giving you full visibility at every step.

Made a mistake during a rebase? Just undo one operation at a time—no need to start over from scratch. Go back just enough, fix the mistake, and resume from there.

When in doubt, glance at the contextual guide: a concise, context-aware summary of your next steps to resolution.

You can manipulate the history at any time; even when there’s a conflict waiting. And sometimes, just reordering commits is enough to resolve a conflict.

Stay in the loop.

Subscribe to the newsletter and stay up-to-date with Retcon news. It’s only a few emails a year, and nothing else.

Packed with capabilities. Refined to perfection.

You can’t summarize years of steady R&D in just a few sentences. Here’s more of the countless features that make Retcon an incredible tool.

Browser-like head history.
Use familiar shortcuts to quickly check out recent branches.
Pause badge in Dock.
Stay focused on the current rebase even through distractions.
Built-in test sandbox.
Freely experiment with Git in a dedicated repository that resets automatically.
Parent pull+rebase.
In a single click, update the parent branch, and rebase on it.
  • Welcome window with recent repositories
  • View formatted global Git config values
  • Inline behind/ahead count
  • Instantly checkout main branch with keyboard shortcut
  • Clutter-free commit metadata
  • Unified interface for both creating and reading commits
  • Multi-select commits or files for group manipulation
  • Multiple custom-designed animation speeds
  • Reveal pausing commit
  • Monitor async operations
  • Split commits in two
  • Automatic grouping of central branches
  • See missing parent branch commits
  • Preview rebases before applying
  • See change recap before applying an edit
  • Cherry pick commits with copy-and-paste
  • Move commits across branches with cut-and-paste
  • Paste or drag hashes directly into the commit list
  • Create WIP commits with no message
  • Switch branches or rewrite history without first stashing
  • Combined workdir + stage
  • Continuous scrolling view of all changed files
  • Decluttered hunk presentation
  • Minimized large/generated files
  • Actual line number in stage diffs
  • Smart inline change highlights
  • Stage specific lines
  • Distinguish between file moves and file renames
  • See moves and renames before staging
  • Precise descriptions for delete conflicts
  • macOS-native
  • Customizable toolbar
  • Customizable shortcuts
  • Light and dark themes
  • Respects system accent color
  • Reveal repository in Finder/Terminal
  • Select favorite terminal app
  • Drop file on Dock icon to reveal in workdir
  • “Open in Retcon” system service
  • Invoke file services
  • CLI helper tool
  • Initialize new repositories
  • Pull/push branches
  • Rebase/merge branches
  • Create/delete branches
  • Instantly create tracking branches
  • Open external difftool
  • Copy commit hash or commit preview
  • SSH/HTTPS remote authentication + keychain support
  • Full OpenSSH config support
  • Automatic background fetch
  • Remember ignored files when rewinding time
  • Automatic crash and error recovery
  • Safely force push with lease
  • Safely undo pushes with custom lease variant
  • All telemetry is opt-in and anonymized
  • And many smaller touches

Ready to see for yourself?

Jump into the built-in test sandbox, and see what makes Retcon unique.