What's New 🚀
📸 Screenshots
Dashboard View

Branch Comparison View

Cherry-Pick Assistant

✨ Features
|
|
| 🔀 Branch Overview |
Compare all local branches against a selected base — including remote branches when fetched |
| 🌐 Remote Branch Support |
Fetch and compare remote branches even if they don't exist locally |
| 📊 Ahead / Behind |
See commit counts at a glance for every branch |
| 🕐 Commit Info |
View the latest commit author, message, and timestamp |
| 🔍 Search & Sort |
Find branches fast with built-in filtering |
| 📂 File Diffs |
Inspect changed files between branches or specific commits; search paths and filter by change type |
| 🔎 Commit Drill-down |
Explore file-level changes per commit and copy full commit SHAs from the dashboard |
| 🔀 Merge Conflicts |
Detect, start, and resolve merge conflicts in your workspace — powered by VS Code's built-in merge editor |
| 🎯 Cherry-Pick Assistant |
Bulk-select commits, auto-detect dependencies, dry-run for conflicts, and execute or copy the generated script |
| Remote Sync |
Fetch remote references or pull the checked-out branch with confirmation and fast-forward-only safety |
| History |
Inspect Git's branch and merge graph, ref labels, and commit file diffs in the existing dashboard |
📦 Install
Available on both registries — pick the one that matches your editor.
| Editor |
Registry |
Link |
| VS Code |
VS Code Marketplace |
Install → |
| VSCodium / Gitpod / Theia |
Open VSX Registry |
Install → |
Via VS Code UI: Open Extensions Ctrl+Shift+X / Cmd+Shift+X, search Branch Compare, and click Install.
Via CLI:
# VS Code
code --install-extension codexdebayan.branch-compare
# VSCodium
codium --install-extension codexdebayan.branch-compare
🚀 Getting Started
Open the Dashboard
| Method |
Action |
| Command Palette |
Branch Compare: Open Dashboard |
| Keyboard shortcut |
Ctrl+Alt+B (Windows/Linux) · Cmd+Alt+B (macOS) |
The command is available when a folder or workspace with a Git repository is open.
Workflow:
- Open a Git repository in VS Code
- Launch Branch Compare: Open Dashboard
- Select a base branch to compare against (local or remote)
- Browse the branch list — ahead/behind counts and latest commit info are shown inline
- Click any branch to open the detailed comparison view
- Explore changed files and launch VS Code diff views directly from the panel
Remote Branches
Branch Compare automatically fetches and includes remote branches in comparisons:
- Automatic Fetching: Remote branches are fetched from your configured remotes (typically
origin)
- Local-Only Not Required: You don't need to check out or create local tracking branches — compare directly with remote refs
- Full Comparison: Remote branches are treated as first-class comparisons alongside your local branches
- Latest State: Remote branch references reflect the most recent fetch — sync your remotes to see the latest branch state
Note: Ensure your remotes are configured (git remote -v) and run git fetch to update remote tracking information before opening the dashboard for the latest results.
Remote Sync
- Fetch updates references from all configured remotes without changing your working files or checked-out branch.
- Pull acts on the checked-out branch, not the selected comparison base. A confirmation names that branch and its upstream.
- Pull requires a clean working tree and no active merge or cherry-pick. It allows only a fast-forward and never creates a merge commit, rebases, or automatically stashes local work.
- A diverged branch, detached HEAD, or missing upstream produces an error instead of changing local history.
History
Use History beside Branches in the dashboard opened from the existing Branch Compare Activity Bar entry. No additional view container is required.
History reads Git's native graph for all local and fetched remote refs. It loads only when opened, starts with 100 commits, and supports Load more up to 500. Select a commit for file details and diffs, or copy its full SHA. History is read-only; Fetch updates remote refs when needed.
🔀 Merge Conflicts
When a comparison has conflicts, a Merge Conflicts tab appears (with a count badge) beside Summary, Commits, and Files.
- Start merge in workspace — runs
git checkout <base> && git merge <target> (clean tree + confirm required).
- Click any file → opens it from your working tree; resolve with VS Code's merge editor (Accept Current / Incoming / Both).
- Stage & commit via Source Control, or Abort merge to back out.
⚠️ The merge action mutates your working tree. It's gated by a confirmation and refuses on a dirty tree.
🎯 Cherry-Pick Assistant
A Cherry-Pick tab inside any comparison turns backporting into a checklist:
- Bulk-select commits unique to the target branch.
- Auto-detected dependencies — warns when a selected commit touches files also changed by an unselected ancestor, with one-click "include dependencies".
- Dry-run in a sandboxed detached HEAD to predict per-commit
clean / conflict / skipped results without touching your branch.
- Execute in workspace to apply the cherry-picks for real, or Copy script to grab a ready-to-run bash sequence.
- Pause-on-conflict with Continue / Abort controls when a real cherry-pick hits a snag.
⚠️ The execute action mutates your working tree. It's gated by a confirmation and refuses on a dirty tree or while another merge/cherry-pick is in progress.
📋 Requirements
- Git must be installed and available on your
PATH
- A folder or workspace with at least one Git repository must be open
- Diff views use temporary snapshots. Pull, Start merge in workspace, and Execute in workspace for cherry-picks can modify your working tree. Cherry-pick dry-runs temporarily check out a detached HEAD and restore the original ref afterward.