Skip to content

Fixup autosquash

A fixup! commit is Git's own convention for "this belongs squashed into an earlier commit" without rewriting anything yet. Git Manager notices them and banners the graph the moment any exist, groups each with the target commit it belongs to, and rewrites history in one action once you approve the plan — no manual interactive rebase required.

The preview groups the two fixup!/target pairs

The pending-fixups banner appears as soon as any fixup! commit exists, and opening the autosquash preview from it groups each one with the target commit it belongs to — so you can check the pairing is right before running it. Running it rewrites history in a single action, exactly as if you'd run git rebase --autosquash by hand.

The preview groups the two fixup!/target pairs

Captured from the running app by this scenario.

Do this

  1. Open the autosquash preview

You should see

  • The preview groups the commit feat: add greeting module
  • The preview groups the commit feat: add farewell module
  • The preview does not show the commit feat: add config module

Creating a fixup commit from a staged change via the palette

"Create fixup commit" turns a staged change into the other half of the pair the preview above groups: the message is prefilled with fixup! <target's own subject> so Git's own autosquash convention is followed without typing it out, and confirming commits it immediately — the actual squash happens later, from the pending-fixups banner.

Creating a fixup commit from a staged change via the palette

Captured from the running app by this scenario.

Do this

  1. Open the command palette
  2. Run the command palette action commit-fixup
  3. Confirm the fixup commit

You should see

  • The command palette shows commit actions for HEAD
  • The fixup commit window is shown
  • The fixup commit message is prefilled with fixup! feat: add config module
  • The repository HEAD commit subject is fixup! feat: add config module

This page is generated from apps/e2e/features/fixup-autosquash.feature, the end-to-end test that drives the feature it describes.

MIT licensed · Screenshots exported from the real app by the end-to-end suite.