Git Revision Graph
Visualize. Compare. Act. — without leaving VS Code.
Git Revision Graph turns Git history into an interactive editor workspace. Explore branches and
merges, review changes, inspect commit history, and run guarded Git workflows from the graph while
staying close to VS Code Source Control and native diff editors.
Install from the Visual Studio Marketplace
Start In Source Control
Open View Git Revision Graph from the Source Control toolbar or Command Palette. The active
repository opens in a full-size editor panel, with repository selection available for
multi-repository workspaces.

Center on HEAD is disabled when HEAD is absent from the current graph, including after filtering.
Reference context menus adapt to the available panel width and wrap long names so their full
action targets remain readable.
With a reference focused, press Shift+F10 or the Menu key to open its actions.
Use Up/Down, Home/End, and Right/Left to navigate actions and submenus;
Enter activates an action, Esc closes one menu level, and Tab leaves the menu.
Use graph scopes, search, focus modes, zoom, and the minimap to move from repository-wide context to
the revisions that matter. Large scenes use bounded history, host-side layout, caching, and
virtualized rendering to remain responsive.
Compare Without Losing Context
Select two visible references or commits to open Compare Results, or compare one revision with
the current worktree.

- Review changed files as a compact queue with status filters and rename-aware paths.
- Keep filters and valid file selections during briefing updates and worktree refreshes in
the same comparison. A new comparison starts with cleared filters and a fresh selection.
- Open file changes in VS Code's native diff editor or inspect the complete Unified Diff.
- Compare an item with the worktree and restore guarded worktree files when needed.
- Generate an optional, user-initiated AI Briefing through an available GitHub Copilot language
model. Diff context is bounded, filtered, and sanitized before it reaches the model.
Inspect History With Show Log
Open Show Log from any visible branch, tag, remote reference, stash, or commit. The log starts on
the exact selected target; Show All Branches is available when broader history is intentional.

- Inspect compact commit history for one target or an explicit
base..compare range.
- Search commit metadata, filter by changed files or code, load additional pages automatically,
and expand commits for changed files.
- Open file diffs, compare commits with the worktree, copy hashes and reference names, and open
supported commits on their hosted remote.
- Create branches or tags from exact commits, check out a commit to a new branch, reset with
confirmation, and cherry-pick selected commits with conflict handoff to Source Control.
Show Log accepts file:src/auth/ for changes to a repository-relative file or directory and
change:"validateToken(" for literal text in added or removed text lines. Combine them with
ordinary metadata text, for example file:src/auth/ change:"validateToken(" fix parser, to require
all conditions. Quote values containing spaces; inside quotes, use \" for a quote and \\ for a
backslash. File paths and changed text are case-sensitive, without wildcards or regular expressions.
Paths match their name at each commit; the filter does not follow earlier names across renames.
Ordinary text retains case-insensitive matching against hashes, authors, messages and references.
Search checks up to 2,000 commits in the selected scope and identifies results when older history
was not searched.
Work Directly From The Graph
The graph keeps everyday Git actions close to their revision context:
| Area |
Available workflows |
| Navigation |
All refs, current branch, origin/HEAD, and local-branch scopes; search by ref, hash, subject, or author; Focus Range; Focus Descendants remembered per repository across window reloads; relationship highlighting; minimap; zoom; Center HEAD; persisted view options. |
| Branches and tags |
Checkout local or remote branches, create a branch or tag from a visible revision, publish a local branch with upstream tracking, push or remove remote tags, and delete supported local or remote refs. |
| Remote synchronization |
Fetch with optional Prune and Tags flags, Pull, Push, confirmed force-push modes, and Sync for the tracked current branch. The toolbar offers Publish Branch to Remote when the current branch has no matching upstream, then switches to Push after publication. Remote work uses nonblocking progress so the graph remains interactive. |
| History and recovery |
Merge into the current branch, abort a conflicted merge, reset to a revision, stash workspace changes, apply/pop/drop visible stashes, and restore selected worktree files. |
| Hosted remotes |
Open exact commits on supported GitHub, Azure DevOps, GitLab.com, and AWS CodeCommit remotes. |
| Repository support |
Automatic repository-state refresh, actionable empty states, and explicit selection for multi-repository workspaces. |
Workspace-changing actions use confirmations, clean-worktree and conflict checks, repository-scoped
mutation coordination, and actionable failure messages. Conflicts remain in VS Code Source Control,
where the normal resolution workflow is already available.
Optional Flow Governance
Flow Governance adds repository-defined branch classification and guided delivery workflows without
replacing normal Git Revision Graph behavior.
- Display compact, theme-aware badges for main, release, feature, package, task, hotfix, bug, and
synchronization branches.
- Start releases and hotfixes from main, features from main or a release, packages from a feature or
release, tasks from a feature or release, and bugs from a feature or release.
- Run fetch-first readiness checks, synchronize safe behind-only sources after confirmation, preserve
ahead-only work, and block divergent sources for manual reconciliation.
- Prepare local
sync/* equalization branches without automatic push and hand governed integrations
off to supported Pull Request workflows.
- Preview the source, target/base, expected branch name, checkout and merge effects before submitting
branch or equalization forms. The summary highlights the final name, separates validation feedback,
and offers expandable details with the full name. Names follow the repository configuration. Incomplete or invalid names
show a compatible example or the required pattern. Previews identify conflicts with known local and
remote-tracking branches; submission rechecks availability. If a preview is temporarily unavailable,
use Retry preview without changing the entered name.
- Navigate branch and equalization dialogs with Tab/Shift+Tab. Escape closes idle forms; closing
restores focus to the previous control or View when that control is no longer available.
- Keep branch and equalization form input after a failed operation so it can be corrected and retried.
If a branch was already created before a later step failed, review its state before starting another operation.
- Improve branch descriptions only when the user explicitly requests assistance from an available
GitHub Copilot language model.
Create the repository configuration with Create Flow Governance Config, or enable Flow
Governance from the graph's View menu. Activation is saved in the repository configuration file;
the toggle shows Saving… and confirms the saved value when the update completes. A missing or
invalid configuration never blocks the standard graph. The View menu shows configuration status
and validation details; use Open Configuration to inspect the file, then reload the graph after
correcting it.
Quick Start
- Install Git Revision Graph from the Marketplace.
- Open a folder containing a Git repository.
- Open Source Control and select View Git Revision Graph from its toolbar.
- Select one revision for contextual actions or Ctrl/Cmd-click two revisions to compare them.
The graph, Compare Results, and Show Log are editor panels. Closing the graph also closes its
on-demand review panels.
Settings
| Setting |
Purpose |
Default |
gitRevisionGraph.traceLoading |
Writes graph loading diagnostics to the Git Revision Graph output channel. |
false |
gitRevisionGraph.graphCommandTimeoutMs |
Sets the bounded timeout for revision-history Git commands. |
60000 ms |
gitRevisionGraph.flowGovernance.configPath |
Selects the repository-relative Flow Governance configuration path. |
.git-revision-graph-flow.json |
Requirements And Current Boundaries
- Visual Studio Code
1.90.0 or newer, Git, and the built-in VS Code Git extension.
- The graph intentionally loads a bounded recent-commit window instead of unbounded full history.
- Merge conflict resolution is delegated to the standard VS Code Source Control experience.
- Binary files and unusual encodings may not render meaningfully in textual diffs.
- Hosted commit and Pull Request actions depend on the configured remote provider and supported URL
shape.
Project Links
License
MIT
Credits
Git Revision Graph was inspired by revision-graph workflows in
TortoiseGit.
| |