Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Git PrismNew to Visual Studio Code? Get it now.
Git Prism

Git Prism

Akmal Yasykur

|
1 install
| (0) | Free
IDE-style Git log for VS Code: branches tree, commit graph with stable ordering and lane colors, changed files per commit, and a full set of Git actions (compare, history, blame, rebase, merge, conflicts, stash) in the editor menu.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Git Prism

A desktop-IDE-grade Git log for VS Code: the Git panel with the branches tree, the commit graph and the changed files of a commit, plus a full set of Git actions in the editor context menu (compare, history, blame, branches, push/pull/merge/rebase, conflicts, stash, patches).

The commit order is stable and readable (by commit date with children always above their parents, or a topological "smart" sort that keeps merged branches together), every lane gets a stable color derived from its branch name, and the current branch is highlighted. Icons and fonts follow your VS Code theme and file icon theme.

The extension talks to the git CLI directly, supports several repositories in one workspace, empty repositories, detached HEAD and in-progress merge / rebase / cherry-pick / revert. Every git command it runs is shown in the Console pane at the bottom of the log.

Git panel › Log

  • Branches tree: HEAD, Local, Remote › <remote>, Tags; search, favorites, grouping by / prefix; single click filters the log by the branch, context menu with Checkout, New Branch from…, Compare with Current, Merge / Rebase, Push…, Rename…, Delete…
  • Commit table: Author, graph + subject with reference labels, Date; my commits bold, merge commits grey, current branch highlighted, author* when author ≠ committer, HEAD drawn as a ring. Virtualized and paged for big repositories.
  • Filter bar: Text or hash (regex, match case), Branch, User, Date, Paths; sort by commit date or topologically; First Parent, Long Edges; Go To Hash/Branch/Tag.
  • Changes: changed files of the selected commit(s) (compacted folders, counts, status colors) and commit details (message, hash, author, date, containing branches); optional diff preview on the right or at the bottom.
  • Commit context menu: Copy Revision Number, Create Patch…, Cherry-Pick, Checkout Revision, Show Repository at Revision, Compare with Local, Reset Current Branch to Here…, Revert Commit, Undo Commit…, Edit Commit Message…, Fixup…, Squash Into…, Squash Commits…, Drop Commits, Interactively Rebase from Here…, Push All up to Here…, New Branch…, New Tag…
  • File context menu: Show Diff, Compare with Local, Show File at Revision, Annotate, Show History, Drop / Extract Selected Changes.
  • Context menus are VS Code's native menus.

Editor context menu › Git

Group Actions
Commit Add, Add to .gitignore
Compare Show Diff, Compare with Revision…, Compare with Branch or Tag…, Compare with Latest Repository Version, Show History, Show History for Selection…, Annotate with Git Blame
Rollback Show Current Revision, Rollback…, Resolve Conflicts…
Remote Push…, Pull…, Fetch, Update Project…
Branch Merge…, Rebase…, Reset HEAD…, Branches…, New Branch…, New Tag…, Checkout Tag or Revision…, Clean Up Branches…; Continue / Skip / Abort of a running merge, rebase, cherry-pick or revert
Stash Stash Changes…, Unstash Changes…, Create Patch…, Apply Patch…
Repository Manage Remotes…, Worktrees…, Clone…, Create Git Repository…, Unshallow repository

Diff, merge and conflicts

  • Side-by-side / unified diff viewer with previous / next file navigation and an editable right side for working tree files.
  • Three-way merge tool with Accept Yours / Accept Theirs / Merge; Resolve Conflicts… dialog listing the unmerged files; conflict notification with "Resolve…".
  • Annotate with Git Blame gutter (revision / date / author / subject, name style, colors) and annotated line actions; gutter change markers with Next / Previous Change, Rollback Lines and Show Diff for Lines.

Commands

All commands are in the Git category of the Command Palette. Main entry points:

Command Id
Show VCS Log gitPrism.log.show
Show Git Console gitPrism.console.show
Branches… gitPrism.branches.show
New Branch… / New Tag… gitPrism.branch.new / gitPrism.tag.new
Push… / Pull… / Fetch gitPrism.push / gitPrism.pull / gitPrism.fetch
Update Project… gitPrism.updateProject
Merge… / Rebase… / Reset HEAD… gitPrism.merge / gitPrism.rebase / gitPrism.resetHead
Resolve Conflicts… gitPrism.conflicts.resolve
Compare with Branch or Tag… / with Revision… gitPrism.compareWithBranch / gitPrism.compareWithRevision
Show History / Show History for Selection… gitPrism.showHistory / gitPrism.showHistoryForSelection
Annotate with Git Blame gitPrism.annotate.toggle
Stash Changes… / Unstash Changes… gitPrism.stash.create / gitPrism.stash.unstash
Create Patch… / Apply Patch… gitPrism.patch.create / gitPrism.patch.apply
Clean Up Branches… / Manage Remotes… / Worktrees… gitPrism.cleanupBranches / gitPrism.remotes.manage / gitPrism.worktrees
VCS Operations Popup… gitPrism.vcsOperations

Keybindings

Action macOS Windows / Linux
VCS Operations Popup… Ctrl+V —
Rollback Lines Cmd+Alt+Z Ctrl+Alt+Z
Next / Previous Change Ctrl+Alt+Shift+Down/Up Ctrl+Alt+Shift+Down/Up

Settings

Setting Default Description
gitPrism.gitPath "" Path to the git executable (empty = git from PATH).
gitPrism.log.sortType "date" date (by commit date, children above parents) or topological (merged branches kept together).
gitPrism.log.* First Parent, Long Edges, columns, date format, pretty dates, highlights (my / merge commits, current branch), tag names, compact references, references on the left, details, diff preview and its location, branches tree.
gitPrism.annotate.* Visible columns, name style, colors, ignore whitespaces, detect movements, commit timestamp.
gitPrism.branches.* Tags, Recent, group by directory / repository, only favorites.
gitPrism.push.protectedBranches "master, main" Protected branches (force push prohibited).
gitPrism.fetch.prune true Fetch with --prune.
gitPrism.update.showDialog true Show the Update Project dialog.
gitPrism.update.method "merge" Merge or rebase for Update Project.
gitPrism.update.saveChangesPolicy "stash" Stash local changes before updating.
gitPrism.cherryPick.addSuffix false Add the "cherry picked from" suffix.
gitPrism.commitOps.showDropCommitDialog true Confirm Drop Commits.
gitPrism.conflicts.showNotification true Notify about merge conflicts.
gitPrism.diff.gutterMarkers true Changed-line markers in the gutter and overview ruler.

Requirements

  • VS Code 1.140 or newer.
  • Git 2.30 or newer on PATH (or gitPrism.gitPath).

Development

npm install
npm run contributes      # merge src/**/contributes.json + src/webview/*/menus.json into package.json
npm run typecheck        # extension host + webviews
npm run build            # dist/extension.js + dist/media/*.js
npm test                 # unit tests (node:test)
npm run package          # .vsix

See ARCHITECTURE.md for the layout.

Known gaps

  • Only the git CLI is supported; no GitHub / GitLab integrations.
  • The graph layout is computed on the loaded (filtered) commits, so with a branch filter secondary lanes may be laid out differently than in the unfiltered log.
  • Reverting merge commits from the log is disabled (git revert -m needs a parent choice).
  • Extract Selected Changes does not support changes inside git submodule entries.

License

MIT. The commit ordering and graph coloring are ports of Apache-2.0 code from intellij-community.

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