Interactive rebase, without the fear
Interactive Git Log turns git rebase -i into a visual editor inside VS Code. Reorder, squash, and drop commits with clicks — and watch every command it runs.
What interactive rebase actually does
An interactive rebase (git rebase -i) replays a sequence of commits one at a time, letting you change the sequence as it goes: swap the order of commits, combine several into one (squash), reword messages, or delete commits entirely. It's the tool behind every clean, reviewable Git history.
On the command line, you do this by editing a todo file — a list of pick, squash, and drop lines in a text editor, where one mistyped line can derail the whole operation. The concept is simple; the interface is hostile. That interface is the part Interactive Git Log replaces.
Edit your stack visually
When you're on a branch with multiple commits, IGL shows an Edit stack button. Clicking it opens a dialog listing your commits — the same information as the rebase todo file, but as a visual list you can manipulate directly:
- Reorder commits by moving them up or down the list
- Squash a commit into its parent to combine work
- Drop commits you no longer need
Press Save changes and IGL runs the interactive rebase for you. No todo file, no remembering whether squash keeps the message or fixup discards it.
One-click rebase onto any branch
Plain (non-interactive) rebasing is just as direct: hover over any branch in the branch tree and a rebase button appears. Press it, and your current branch is rebased onto the target. Keeping a feature branch up to date with origin/main becomes a single click instead of a checkout-pull-rebase dance.
You always see what's happening
While a rebase runs, IGL shows progress at the bottom of the screen — including the exact Git arguments it's using. If something goes wrong, the error appears in the same place. This transparency is the difference between a GUI that teaches you Git and one that hides it: anything IGL does, you can replicate or continue on the command line.
Frequently asked questions
Is interactive rebase dangerous?
Interactive rebase rewrites history, so the standard caution applies: avoid rebasing commits that other people have already pulled. On your own feature branches it's a routine, everyday tool. IGL shows the exact commands it runs, so nothing happens behind your back — and git reflog can recover the previous state if you ever change your mind.
What happens if I hit a conflict mid-rebase?
IGL lists each conflicted file under your uncommitted changes. Resolve the file in the editor, click the plus button to mark it resolved, and continue. See resolving merge conflicts during rebase for the full flow.
Can I squash all the commits on a branch?
Yes. Open the stack editor and squash commits into one before merging. The stack editing guide walks through reordering, squashing, and dropping in detail.