Open files in VS Code and Cursor / Code and APIs

Squash several commits in VS Code

Git Commit Graph & History Log shows your repository as a graph in VS Code. Click the newest commit you want to join, Shift+click the oldest, and pick Squash These Commits…. You type the first line of the new message, then a preview shows the git rebase -i command and its todo list before anything runs. Git does the work, so the result is the same as on the command line. The graph and squash are free, with no account. Zovo Pro (USD 19 once) adds an interactive rebase editor, a branch comparison report and saved graph filters, with 3 free tries each.

Install in VS CodeMarketplace pageOpen VSX (Cursor, Windsurf, VSCodium)

Free, MIT license. Extension ID zovo.zovo-git-commit-graph, version 0.1.1. Needs VS Code 1.90.0 or newer.

The "Squash 3 commits into one?" confirmation over the commit graph, with the git rebase command, the todo list, the three commits step 5 to step 7, the new message and the Cancel and Squash buttons.
The "Squash 3 commits into one?" confirmation over the commit graph, with the git rebase command, the todo list, the three commits step 5 to step 7, the new message and the Cancel and Squash buttons.

Steps in VS Code

  1. Install Commit Graph from the Marketplace, or press Ctrl+P (Cmd+P on macOS) and run ext install zovo.zovo-git-commit-graph.
  2. Run "Commit Graph: Show Commit Graph" from the Command Palette, or click the Graph button in the status bar or in Source Control.
  3. Click the newest commit you want to join, then Shift+click the oldest. Both must be on the checked-out branch. Commit or stash uncommitted changes first.
  4. Click Squash These Commits… below the graph, or right-click the range and pick Squash N Selected Commits…. Type the first line of the new message. The full messages of the squashed commits follow as the body.
  5. Read the preview. It shows the git rebase -i --no-autosquash command, the todo list, the commits and how many later commits are replayed unchanged. Click Squash.
  6. If git stops on a conflict, a bar shows Continue, Skip and Abort.

Where Zovo Pro saves time

The graph, search over the full history, commit details, diffs, file and line history, squash and every git action are free, with no account and no time limit.

Squash of one straight range is free. When you want to clean up a branch in one pass (reorder commits, reword messages, squash or fixup several groups and drop some), the Interactive rebase editor lists the commits oldest first. Drag a row (or use Alt+Up and Alt+Down) to move it, and set each one to pick, reword, squash, fixup or drop. Start Rebase… shows the exact git todo list before git runs it, and a try counts only when git finished the rebase. The other two Pro tools are the branch comparison report (commits on each side, merge base, changed files and authors, as Markdown) and saved graph filters.

With Interactive rebase editor (Zovo Pro)

  1. Right-click the commit just below the ones you want to change and pick Interactive Rebase from Here…. Or run "Commit Graph: Interactive Rebase..." and type a base such as HEAD~5.
  2. Drag the rows into the order you want and set each one to pick, reword, squash, fixup or drop. Squash and fixup join a commit into the one above it.
  3. Click Start Rebase… and read the git todo list in the confirmation before git runs it.

Interactive rebase editor works 3 times on your computer before it asks for a license, and a try counts only when you get a result. Opening a file shows no popup and no countdown.

Pay by card, USD 19 onceGitHub SponsorsPayPal

Zovo Pro costs USD 19 once. It is not a subscription, and it turns on the Pro tools in every Zovo extension, not only Commit Graph. After a card payment (Stripe) your license key shows on the next page. In VS Code, run "Zovo Pro: Enter Zovo Pro license key" from the Command Palette and paste it. The key is checked on your computer, with no network call. With GitHub Sponsors, pick the "$19 one time" tier, then run "Zovo Pro: I already paid: unlock with GitHub Sponsors" and sign in with the same GitHub account. With PayPal, send USD 19 with "Zovo Pro" in the note and the key comes by email within a day.

A team of 5: USD 59 once, by card or by PayPal. Every rule and every Pro tool is on the Zovo Pro page.

Steps in Cursor, Windsurf or VSCodium

  1. Open the Extensions view with Ctrl+Shift+X (Cmd+Shift+X on macOS).
  2. Search for zovo.zovo-git-commit-graph and click Install. Cursor, Windsurf and VSCodium install from Open VSX, where it is published as zovo/zovo-git-commit-graph.
  3. If your editor has no gallery, download the .vsix from the Open VSX page and run "Extensions: Install from VSIX...".
  4. Then use it the same way as in VS Code.

What Commit Graph handles

What it does not do

Other options

Install counts and Open VSX status were checked on 12 November 2026. Descriptions in quotes are the extensions' own.

Questions

What if I already pushed the commits?

Squash rewrites them, so a normal push is refused. Run git push --force-with-lease in a terminal, or turn on git.allowForcePush and run "Git: Push (Force)" in VS Code. Do this only on a branch nobody else builds on.

Can I undo a squash?

Yes, for a while. The old commits stay in the reflog. Run git reflog, find the commit from before the squash and run git reset --hard with its hash.

Is squash free?

Yes. The graph, search, squash and every git action are free. Only the interactive rebase editor, the branch comparison report and saved graph filters are Zovo Pro, with 3 free tries each.

Does it work in Cursor or Windsurf?

Yes. Cursor, Windsurf and VSCodium install extensions from Open VSX. Search for the extension in their Extensions view and install it there.

More about Commit Graph

Read the Commit Graph page for every feature and setting, or the source code on GitHub.

Zovo Pro and support

Zovo Pro: USD 19 once, every Zovo viewer. It turns on the Pro tools in this extension and in the other Zovo extensions you use. The free features stay free.

After a card payment your license key shows on the next page. Paste it with the command "Zovo Pro: Enter a key".

You can also support the work with no Pro:

Need your format supported?

Open a format request with a sample file, and I reply there whether it can be done. For USD 299 once, through this GitHub Sponsors tier, I add your file format or a missing feature to this extension, with tests, within 7 days.