Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitVision XNew to Visual Studio Code? Get it now.
GitVision X

GitVision X

Preview

tigranmk

|
2 installs
| (0) | Free
Fast, quiet git blame for the line you're on, and a commit graph that follows your cursor.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitVision X

Who changed this line, and when, without leaving the code.

GitVision X shows git blame for the line your cursor is on, quietly and fast, and a commit graph that follows your cursor. Hover the blame to see the line's history. It's one free extension with no CodeLens clutter and no paywalled views.

Preview. Inline blame, the commit graph, the time-travel slider and conflict resolution are ready to use (see Roadmap).

Features

Blame on the current line

Stop on a line for a quarter of a second and its blame appears at the end of the line, in faded text:

const token = await refresh(session);      You, 3 days ago • Fix token refresh (#412)
  • Only the current line is annotated, so the rest of the file stays clean.
  • "You" is shown for your own commits, based on the repo's user.email.
  • Lines you've added or edited and not committed yet show Not committed yet. Edits are tracked as you type; blame isn't re-run on every keystroke.
  • Whitespace-only changes are ignored, and commits listed in your blame.ignoreRevsFile are skipped (useful for formatting commits).

Line history on hover

Hover the blame text to see:

  • the author, date and full commit message;
  • Open diff for that change, and Copy SHA;
  • a timeline of the last 10 commits that touched the line, following renames, with a diff link for each;
  • moved from path when the line came from another file.

Select several lines for a summary

Select a block of code to see who wrote it and how old it is:

12 lines: 3 authors · You 60%, Ann 30% · oldest 2 years ago · newest 3 days ago

Commit graph that follows your cursor

The commit graph with a commit's details and a file's micro-diff

Open GitVision in the panel (next to the Terminal), or Open Graph Beside to put it next to your editor. It stays smooth at 60 fps on repositories with 100,000+ commits.

  • Follows your cursor: the commit that last changed the current line is highlighted and scrolled into view as you move. Rest on a line and every commit in that line's history is ringed, so you can see its path through the branches.
  • Commit details: click a commit for its message, branches and tags, and the changed files with +/− counts. Files you have open are pinned to the top. Hover or select a file for a small side-by-side diff; double-click it (or press Enter) for the full diff editor.
  • Filters and search: show all branches, the current branch, or only commits that touched the active file. Press / to search by message, author or SHA; type path:src/app.ts (globs work) for commits that touched a path.
  • Git actions: right-click a commit to check it out, create a branch or tag, cherry-pick, revert, reset the current branch to it, or compare it with HEAD. Drag one branch label onto another to merge or rebase. Every action that changes the repository asks first and says exactly what will happen.
  • Labels: branches, remote branches, tags, a detached HEAD, and the HEADs of your other worktrees. Shallow clones end with a Fetch more row.
  • Keyboard: ↑/↓, Page Up/Down, Home/End to move, Space to show details, Enter to open the commit's changes, Escape to close the details.

Time travel through a file's history

The time-travel slider over a file's 500 revisions

Step a file back through every revision it has had, in the editor you're already in:

  • Click the history button in the editor title for a searchable list of revisions; moving through it previews each one. Or open Time Travel in the GitVision panel and drag the slider.
  • Alt+[ and Alt+] step back and forward; Escape returns to your working copy.
  • Lines added in each revision are tinted; removed lines appear as red text where they were (hover for all of them). You stay at the same place in the code as you step.
  • Pin a revision to compare every later step against it instead of the one before.
  • Renames are followed: older revisions show the file under its old name.
  • From the blame hover, Time travel jumps straight to the revision that changed the line.

Merge and rebase conflicts

The conflict map: a rebase in progress, with progress, files and Continue / Skip / Abort

When a merge, rebase, cherry-pick or revert stops with conflicts:

  • Each conflict in the editor gets Accept Current, Accept Incoming, Accept Both, Pick Lines… (choose lines from either side), Compare and Explain, plus who last changed those lines on each side. Every choice is a single undo step. diff3/zdiff3 base sections start folded.
  • Explain lists the commits on each side, since the branches split, that touched those lines.
  • Conflicts that aren't in a file's text get a card instead: a file deleted on one side and changed on the other (keep or delete it), a file renamed differently on each side (pick a name), or a binary file (keep one side).
  • Open in 3-way Merge Editor hands the file to VS Code's merge editor.
  • In the graph, the operation in progress appears as a temporary node joining both sides. Select it for every conflicted file, progress so far, and Continue, Skip or Abort. The status bar shows the same, with the step counter during a rebase.

Optional extras

  • Gutter heatmap: colours the gutter by line age, from warm (recent) to cool (old).
  • Status bar author: shows the current line's author at the bottom of the window.

Getting started

  1. Install the extension.
  2. Open a folder that is a git repository.
  3. Click any line in a file that git tracks.

The walkthrough (Help → Welcome → Get started with GitVision X) shows each feature in a minute.

It works with VS Code's built-in Git support and uses the same git executable. There's nothing to configure.

Commands

Open the Command Palette (Ctrl/Cmd+Shift+P) and type "GitVision".

Command What it does
GitVision: Open Graph Beside Opens the commit graph next to the editor.
GitVision: Time Travel: Browse File History… Lists the active file's revisions and previews them as you move.
GitVision: Conflicts: Continue, Skip or Abort… Finishes, skips the current commit of, or aborts the merge or rebase in progress.
GitVision: Conflicts: Open in 3-way Merge Editor Opens the active conflicted file in VS Code's merge editor.
GitVision: Toggle Inline Blame Turns the current-line blame on or off.
GitVision: Blame This File Blames a file over 20,000 lines, which is skipped automatically.
GitVision: Show Commit Index Stats Shows how many commits are indexed for each open repository.
GitVision: Rebuild Commit Index Rebuilds the commit index from scratch.

Settings

Setting Default Description
gitvision.blame.enabled true Show blame as faded text on the current line.
gitvision.blame.gutterHeatmap false Colour the gutter by line age.
gitvision.blame.statusBar false Show the current line's author in the status bar.
gitvision.blame.offerCommitGraph true In repositories with 10,000+ commits, offer once to build git's commit-graph (see Performance).

Performance

GitVision X is designed to stay out of the editor's way:

  • All git work runs in background threads, never on VS Code's extension host.
  • A file's blame starts loading as soon as you open it, so it's usually ready before you stop on a line.
  • Results stream in as git finds them. Recently changed lines appear first: in about 12 ms on a 100,000-commit repository.
  • Blame is saved between sessions, so reopening a file you've viewed before is instant.

The one slow case is the first-ever blame of a line that hasn't changed since early in a long history. Git has to walk the whole history to find it: up to about 0.75 s on a 100,000-commit repository. In large repositories GitVision offers once to let git build its commit-graph with changed-path Bloom filters, which makes that walk roughly 40% faster. It runs git commit-graph write, a standard git command, and never runs without your OK.

Using it alongside GitLens

If GitLens is installed, GitVision asks once whether to turn off GitLens's current-line blame, so you don't see blame twice. Nothing else in GitLens is changed, and you can decline.

Privacy and data

  • GitVision X collects no telemetry. It contacts your remote only when you click Fetch more in a shallow clone (a normal git fetch, with your own credentials).
  • It keeps a commit index and a blame cache in VS Code's extension storage on your machine. The blame cache is capped at 256 MB.
  • Time travel only reads: revisions open read-only and are never written to disk.
  • It changes your repository only when you ask: a graph action you confirmed (checkout, branch, tag, cherry-pick, revert, reset, merge, rebase), a conflict resolution you chose (staging, deleting or taking one side of a file; continuing, skipping or aborting the operation), or the commit-graph file if you accept that offer.

Requirements

  • VS Code 1.95 or newer
  • git 2.35 or newer, available to VS Code's built-in Git extension
  • A trusted folder: GitVision X is off in Restricted Mode because a repository's git config can make git run programs, the same reason VS Code's built-in Git is disabled there.

Known limitations

  • The first-ever blame of very old lines in very large repositories can take up to about a second (see Performance).
  • Files over 20,000 lines are only blamed on request (GitVision: Blame This File). Binary files are not blamed.
  • Repositories using SHA-256 object names are not supported yet.
  • On very wide histories (more than about 40 branches side by side in a narrow panel) the lanes at the right edge are cut off.
  • Message search covers commit subjects, not full message bodies.
  • The first time a repository with 100,000 commits is indexed, the graph appears after about a second (git reads every commit once). After that the index is reused and the graph opens in about 0.3 s.
  • Works with files on disk, including over Remote-SSH, where it runs on the remote machine. Dev Containers and WSL work the same way but haven't been tested yet. Virtual and web workspaces (such as vscode.dev) are not supported.

Roadmap

Milestone Status
Inline blame with line history Available (preview)
Commit graph that follows your cursor Available (preview)
Time-travel slider for a file's history Available (preview)
Conflict resolution with a branch-structure map Available (preview)

Feedback and contributing

Found a bug or have an idea? Open an issue. Contributions are welcome: see CONTRIBUTING.md.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft