Your branch tree, visualized

Interactive Git Log draws your commits and branches as a living tree in VS Code — anchored where your work diverges from main, with every branch one click away.

A tree that starts where your work does

Most Git visualizations dump the entire history of the repository on you — thousands of commits, dozens of merged branches, all rendered with equal weight. IGL takes the opposite approach, inherited from the smartlog tools used inside Meta: show only the commits that matter to your work, starting from where your branches diverge from the primary remote branch (usually origin/main or origin/master).

The result is a tree you can actually read. Your feature branches, their relationship to each other, how far you've drifted from main — one glance answers questions that would otherwise take three terminal commands.

Checkout by clicking

Branch names exist for Git's benefit, not yours. In IGL you don't type them: click a branch tag in the tree and you're on it. No git checkout feature/IGL-1234-fix-the-thing, no tab-completing through twenty stale branches.

The tree also marks where you currently are, so "wait, which branch am I on?" stops being a question you ask Git and becomes something you simply see.

Create, remove, and fetch in place

Branch management lives in the same view: create a new branch, delete ones you're done with, and fetch from the remote — all without leaving the tree. Combined with one-click staging and commits, your entire day-to-day Git workflow fits in a single panel.

And when a branch needs to move — onto a fresher main, or onto a different parent — hovering over the target reveals a rebase button. That flow is covered in the interactive rebase guide.

Frequently asked questions

Does IGL show remote branches?

IGL anchors its tree on your primary remote branch — usually origin/main or origin/master — and shows your local work relative to it. You can fetch directly from the view to keep that picture current.

How is this different from git log --graph?

git log --graph prints the entire history as static ASCII art — informative, but read-only and noisy. IGL's tree starts where your work diverges, stays live as the repo changes, and every element is clickable: branches check out, buttons rebase.

Can I manage branches without the terminal?

Yes — you can add, remove, and fetch branches directly from IGL, and check out any branch by clicking its tag.