Git Fixup Panel
A VS Code extension for creating fixup commits and running autosquash rebase through a GUI — right from the Source Control panel.
What is this?
Git Fixup Panel adds two focused commands to your Source Control panel:
- Create Fixup Commit — stage your changes, pick the commit to amend, and the extension runs
git commit --fixup for you. Optionally kick off an autosquash rebase on the spot.
- Rebase Autosquash — run
git rebase -i --autosquash non-interactively against any commit in your recent history, with no editor window interrupting your flow.
Both commands are accessible from the Source Control panel title bar buttons and the Command Palette.
Features
Create Fixup Commit
Stage your changes, then pick which commit to fix up from a quick-pick list of your recent 20 commits. A fixup! commit is created instantly. After creation you can choose to run the autosquash rebase immediately or defer it.

Rebase Autosquash
Select a base commit and the extension runs git rebase -i --autosquash <sha>^ without opening an editor. All pending fixup! and squash! commits are folded in automatically.

Both commands appear as icon buttons in the Source Control panel title bar so you can reach them without opening the Command Palette.
Getting Started
Create Fixup Commit
- Make your edits and stage them with
git add (or VS Code's Stage Changes button).
- Click the commit icon ($(git-commit)) in the Source Control panel title bar, or open the Command Palette (
Ctrl+Shift+P / Cmd+Shift+P) and run Git Fixup: Create Fixup Commit.
- Select the commit you want to amend from the list.
- A
fixup! commit is created. You will be asked whether to run autosquash rebase immediately — choose Rebase now or Later.
Rebase Autosquash
- Make sure your working tree is clean (no uncommitted changes, no merge in progress).
- Click the fold icon ($(fold)) in the Source Control panel title bar, or run Git Fixup: Rebase Autosquash from the Command Palette.
- Select the base commit — the rebase will apply from that commit up to
HEAD.
- The rebase runs silently and completes without opening an interactive editor.
Requirements
- Git must be installed. The extension respects the
git.path setting in VS Code, so custom Git locations are supported.
- VS Code
1.110.0 or newer.
Extension Settings
This extension does not add its own settings. It reads the following built-in VS Code setting:
| Setting |
Description |
git.path |
Path to the Git executable. Falls back to git on PATH if not set. |
Known Limitations
- The commit picker shows up to 20 recent commits. Older commits are not listed.
- The rebase is fully non-interactive — conflicts will abort the rebase and must be resolved manually via the terminal.
- The extension requires at least one commit in the repository.
Release Notes
0.0.3
- Fix release pipeline:
package.json version is now automatically synced from the git tag before publishing.
0.0.2
- Add LICENSE file to the extension package for correct Marketplace display.
0.0.1
- Initial release.
- Create Fixup Commit: GUI-driven
git commit --fixup.
- Rebase Autosquash: Non-interactive
git rebase -i --autosquash.
- Multi-root workspace support.
- Respects
git.path VS Code setting.
Feedback & Contributing
Issues and pull requests are welcome on GitHub.
日本語ドキュメントは README.ja.md をご覧ください。