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

Git Jet

Preview

Santiago Barcenas

|
106 installs
| (1) | Free
The most faithful 1:1 recreation of JetBrains Git (WebStorm, IntelliJ IDEA, PyCharm…) for VS Code, ported from the IDE's own Git plugin: Commit tool window with changelists, Log with graph, branches popup, interactive rebase, shelve, Push dialog, 3-way merge, GitHub pull requests, multi-repository p
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Git Jet

JetBrains Git, 1:1, inside VS Code. Git Jet is the most faithful recreation of the Git workflow of WebStorm, IntelliJ IDEA, PyCharm and the other JetBrains IDEs. It is not "inspired by" them: its logic is ported from the IDE's own open-source Git plugin, so the Commit tool window with changelists, the Log with its graph, the branches popup, Smart Checkout, interactive rebase, shelve, the Push dialog and the three-way merge window behave the way you know — same actions, same dialogs, same shortcuts, with the look of the New UI. Projects with several Git repositories work like in the IDE, and a read-only MCP server gives your AI agents the repository as Git Jet sees it.

Preview. Git Jet is a pre-release: feedback and bug reports are very welcome in GitHub Issues.

Git Jet is an independent open-source project, not affiliated with or endorsed by JetBrains. WebStorm, IntelliJ IDEA and JetBrains are trademarks of JetBrains s.r.o., used here only to describe the experience the extension recreates.

Git Jet in VS Code: the Commit tool window, the editor with its change markers and the Git tool window with the Log

In this page: Getting started · Find your way around · The 12 features you'll recognize · And much more · For AI agents (MCP) · Keyboard shortcuts · Settings · Known limitations · Privacy

Getting started

  1. Install Git Jet from the Marketplace (VS Code 1.107 or newer, also Cursor, Antigravity and VSCodium from Open VSX). Git must be installed: Git Jet uses the same executable as the built-in Git extension unless you set gitjet.git.path.
  2. Open a folder with a Git repository. Repositories in subfolders are found too, several levels deep, and each one gets its own color in the branches popup, the Commit tool window and the Log.
  3. Click the Git Jet icon in the activity bar: that is the Commit tool window. The Git tool window (Log, Console, Reflog) is the Git Jet tab of the panel below the editor.
  4. Run Git Jet: Set Up Workspace Like WebStorm from the Command Palette (⇧⌘P / Ctrl+Shift+P). It applies the JetBrains file status colors, turns off the built-in Git surfaces that would duplicate Git Jet's (decorations, open-diff-on-click, autofetch) and explains the one step VS Code does not let extensions do: right-click the Source Control icon › Hide 'Source Control'. Git Jet: Restore VS Code Defaults undoes it.
  5. Optional, recommended: set "gitjet.keymap": "jetbrains" for the IDE shortcuts — ⌘K Commit, ⇧⌘K Push, ⌘T Update Project, ⌘9 Git, ⌃V VCS Operations (see Keyboard shortcuts).

Find your way around

Everything WebStorm puts around the editor has its place in VS Code:

Where everything is: the Git Jet icon, the Commit tool window, the branch widget, the Git tool window, the gutter and the status bar

  1. The Git Jet icon in the activity bar opens the Commit tool window (⌘K / Ctrl+K with the JetBrains keymap, or Git Jet: Show Commit Tool Window).
  2. Your changes, grouped by changelist (or staged / unstaged if you prefer the Git index), with a checkbox per file and per hunk: only what is checked gets committed. Double-click a file for its diff.
  3. The branch widget (main ▾): opens the branches popup.
  4. Commit message with Amend, message history, AI generation, then Commit or Commit and Push….
  5. The Git tool window: the Git Jet tab of the panel, with the Log, Console, Reflog and MCP tabs (plus Working Trees when you have worktrees, and a History tab per file you ask about). MCP is where AI agents get Git Jet's read-only MCP server: see For AI agents (MCP).
  6. The Branches pane of the Log: local and remote branches and tags; a click filters the Log.
  7. The Log with the commit graph, filters (branch, user, date, paths) and text or hash search.
  8. The commit details: changed files, message, author, hash and the actions of the selected commit.
  9. Change markers in the gutter: click one to see the old text, roll it back or open the diff.
  10. The branch in the status bar: the branch of the file you are editing, also a way to the branches popup.

Open the Git tool window

The Git tool window lives in VS Code's panel (the area of the Terminal and Problems):

  • press ⌘9 (macOS) / Alt+9 (Windows / Linux) with the JetBrains keymap;
  • or run Git Jet: Show Git Log from the Command Palette;
  • or open the panel (⌘J / Ctrl+J) and click its Git Jet tab;
  • or click Show Git Tool Window in the toolbar of the Commit tool window.

Like any VS Code view you can maximize it (the ⌃ of the panel), drag the Git Jet tab to the secondary side bar or the other side of the window, or run Git Jet: Open Git Log in Editor to get the Log as an editor tab. Open Another Log Tab (the + of its tabs) opens more Logs, each with its own filters, like the IDE.

Every action is one shortcut or one command away

Every Git Jet action is in the Command Palette under Git Jet: — type what you would look for in WebStorm's Find Action:

The Command Palette with the Git Jet commands

VCS Operations (⌃V on macOS, Alt+` on Windows / Linux, with the JetBrains keymap) is WebStorm's quick list: commit, rollback, history, annotate, branches, push, stash, update, pull, fetch, merge, rebase… numbered, so ⌃V 1 is Commit. And right-click a file (in the editor or the Explorer) for its Git submenu: Annotate, Show History, Compare with Branch, Rollback, Add to .gitignore and more.

The VCS Operations popup

To open Click Shortcut (JetBrains keymap) Command
Commit tool window Git Jet icon in the activity bar ⌘K · Ctrl+K Git Jet: Show Commit Tool Window
Git tool window (Log) Git Jet tab of the panel ⌘9 · Alt+9 Git Jet: Show Git Log
Branches popup main ▾ in the Commit window or the status bar ⇧⌘` · Ctrl+Shift+` (always on) Git Jet: Branches…
VCS Operations — ⌃V · Alt+` Git Jet: VCS Operations
Push dialog the ↗ outgoing arrow next to main ▾ ⇧⌘K · Ctrl+Shift+K Git Jet: Push…
Update Project VCS Operations › Update Project… ⌘T · Ctrl+T Git Jet: Update Project
Resolve conflicts Resolve on the Merge Conflicts node of the Commit window — Git Jet: Resolve Conflicts…
Git settings … menu of the Commit / Git tool windows — Git Jet: Git Settings
Themes and colors … menu of the Commit / Git tool windows — Git Jet: Appearance…
MCP server for AI agents MCP tab of the Git tool window, or the … menu — Git Jet: AI Agents (MCP)…

The 12 WebStorm features you'll recognize

1. The Commit tool window, with changelists

The reason many people stay on WebStorm. Changes are grouped by changelist (the default one plus any you create, even with parts of one file in different lists), every file and every hunk has its checkbox, and the commit message remembers its history and checks itself (subject length, blank line, spelling) — and, as in the IDE, it stays in the editor after a commit, ready to reuse. Before-commit checks, sign-off, Amend with the previous message, Commit and Push…, and a Shelf / Stash tab next to it.

Open it: the Git Jet icon in the activity bar, or ⌘K.

Commit tool window

2. The Git tool window: the Log with its graph

The Log you know: the commit graph with colored branches, the Branches pane, filters by branch, user, date and paths, text and hash search with history, and the details of the selected commit with its changed files. Everything resizes the way you want: drag the borders between columns (the widths are remembered) and the splitter between the changed files and the commit message; in a narrow window the filters scroll sideways, and a hidden Branches pane leaves its Branches stripe on the left to bring it back with one click. With several repositories, their commits share one graph (each repository on its own lanes, with its color) and the Paths filter lists the repositories: click one to hide it, ⌘/Ctrl+Click to see only that one. Right-click a commit for Checkout Revision, New Branch…, New Tag…, Cherry-Pick, Revert Commit, Reset Current Branch to Here…, Interactively Rebase from Here…, Compare with Local, Show Repository at Revision and more.

Open it: ⌘9, or the Git Jet tab of the panel.

Git Log with graph

3. The branches popup

main ▾ opens the popup of WebStorm's branch widget: Recent, Local, Remote and Tags as a searchable tree, favorites (★), incoming / outgoing arrows, and for each branch Checkout, New Branch from…, Checkout and Rebase onto Current, Compare with Current, Show Diff with Working Tree, Rebase Current onto Selected, Merge into Current, Update, Push…, Rename…, Delete. Type to search branches and actions at the same time.

Open it: click main ▾ (Commit window or status bar), or ⇧⌘`.

The branches popup in VS Code

With several repositories in the project (nested ones included) it becomes the multi-repository popup: one row per repository with its color and current branch (› shows its own branches), the branches of the current repository, and — with Execute branch operations on all roots — the branches they all have: checkout, new branch, rename, delete, merge, rebase, update, pull and push run in every repository that has the branch, with the IDE's rollback if one of them fails. Pull, Merge and Rebase pick the repository in their Git Root combo.

The branches popup of a project with several repositories

4. Smart Checkout

Switch branches with uncommitted changes in the way and you get the IDE's Git Checkout Problem dialog: Smart Checkout shelves (or stashes) your changes, checks out and brings them back; Force Checkout discards them; Don't Checkout stays. If your changes clash with the new branch, the Conflicts dialog opens so you resolve them right there. Update Project and Merge do the same.

Open it: it appears by itself when a checkout needs it.

Git Checkout Problem

5. The Push dialog

Review before you push: the outgoing commits of each repository and branch, their files and diffs, the target branch (editable, with a new upstream when needed — a new branch goes to a branch of its own name on the remote, never to the one it was created from), Push Tags and Force Push (always --force-with-lease, never on protected branches). A rejected push offers Merge or Rebase and pushes again. Show Changes above the commits closes the changes pane when you need the room.

Open it: ⇧⌘K, the ↗ arrow next to main ▾ (it shows how many commits are waiting), or Commit and Push….

Push dialog

6. Update Project

⌘T fetches every repository and merges or rebases the current branch onto its upstream, saving your local changes first and restoring them afterwards, then tells you "N files updated in M commits" with View Commits. Pick merge or rebase the first time (or in the Git settings), like the IDE.

Open it: ⌘T, or ⌃V › Update Project…

Update Project

7. Interactive rebase

Interactively Rebase from Here… on a commit of the Log opens the Rebasing Commits dialog: reorder by dragging, reword, squash, fixup, drop, edit. While a rebase is stopped, the Commit tool window shows it with Continue, Skip and Abort.

Open it: right-click a commit in the Log › Interactively Rebase from Here…

Interactive rebase

8. Conflicts dialog and three-way merge

When a merge, rebase, cherry-pick or unstash stops on conflicts, the Conflicts dialog lists every file with Accept Yours / Accept Theirs / Merge…. Merge… opens the three-pane Merge Revisions window: the non-conflicting changes are applied for you, each conflict has its accept arrows, and Merge with AI can propose a resolution you review first.

Open it: it opens by itself; later, Resolve on the Merge Conflicts node of the Commit window.

Conflicts dialog

Merge window

9. Annotate and the gutter

Annotate with Git Blame puts the date and author of every line next to it, colored by age; click one for its commit, or Annotate Previous Revision to go back in time. The gutter shows what you changed since the last commit, and a click on a marker shows the old text with Rollback and Show Diff.

Open it: right-click the line numbers › Annotate with Git Blame, or right-click the editor › Git › Annotate.

Annotate with Git Blame

10. The diff viewer

Side by side (or unified) with inclusion checkboxes to commit only some hunks, navigation between changes and files, three-way comparison for merge commits, and directory comparisons. Compare with Branch or Tag…, Compare with Revision… and Show History work on any file or folder.

Open it: double-click a file in the Commit tool window or the Log.

Diff viewer

11. Shelf and stash

Shelve Changes… keeps changes aside as an IDE-style patch that survives branch switches; Stash Changes… uses git stash. Unshelve or unstash with a preview, partially, or as a new branch; both can share one tab.

Open it: the Shelf tab of the Commit tool window (Shelve Silently is in its toolbar), or ⌃V › Stash Changes…

Shelf and stash

12. History, and the Reflog you never had

Show History of a file, a folder or a selection opens its own tab in the Git tool window. And one thing WebStorm doesn't have: the Reflog tab lists everything HEAD went through and marks the commits a reset or a rebase lost, which you bring back with New Branch… or Reset Current Branch to Here….

Open it: right-click a file › Git › Show History; the Reflog tab of the Git tool window.

Reflog tab

And much more

Pull Requests (GitHub)

The Pull Requests tool window of WebStorm's GitHub plugin: the repository's pull requests with search and filters (state, author, label, assignee, review), Create Pull Request… from the current branch (pushed first when needed), the details with commits, changed files, CI checks and timeline, and a review diff where you comment on lines, reply, resolve threads and submit a review. Merge, Squash and Merge or Rebase, Close / Reopen and Checkout of the pull request's branch are one click away. GitHub Enterprise works through gitjet.github.enterpriseServer. Open it from the Git Jet icon's side bar (Pull Requests).

Pull request details

Review diff

AI actions

Generate Commit Message with AI writes the message from the included changes, Improve Commit Message rewrites the one you typed (optionally as Conventional Commits), Explain Commit in the Log explains a commit, and Merge with AI in the Merge Revisions window proposes a resolution for the open conflicts that you review before applying.

The model is either one of VS Code's Language Model API (GitHub Copilot Chat or any other model provider you have installed) or the AI command line tool you already use, with your own subscription: Claude Code (claude), OpenAI Codex CLI (codex) or Gemini CLI (gemini). So the AI actions also work in Cursor, Antigravity and VSCodium, where there is no Copilot. Git Jet finds the tools on the PATH and in their usual install folders (or at gitjet.ai.cli.claudePath / codexPath / geminiPath), asks once per tool before the first request, sends the prompt on standard input, runs the tool in an empty temporary folder with its tools turned off, and never stores credentials: sign in to the tool once in a terminal. Select Language Model for AI Actions… (or gitjet.ai.model: claude-code, codex, gemini-cli or a Copilot family) picks the model; gitjet.ai.cli.enabled turns the command line tools off. Secret values (keys, tokens, passwords, .env files) are replaced by [REDACTED] before anything is sent.

WebStorm's themes

Git Jet: Appearance… previews every WebStorm theme live on the Git Jet views — Islands Dark / Light, Darcula, Light, High Contrast and more — or follows your VS Code theme, and customizes colors token by token, the accent and the fonts, like Settings › Appearance. Nothing changes until you press Apply or OK.

Appearance

Background tasks and the Git settings page

Long operations (fetch, pull, push, clone, rebase) run in the background with a status bar indicator and a list where each task can be cancelled. Git Jet: Git Settings is the IDE's Version Control › Git page: Git executable with Test, commit and push options, update method, protected branches, branch operations on all roots, credential helper and more. Everything is also a regular VS Code setting.

Background tasks

Git Settings

Also included

Rollback, patches (create / apply), worktrees, submodules, several repositories per project (detected automatically; gitjet.git.ignoredRoots skips some), GitHub clone / share / login, a Git console that logs every command, Git bisect from the Log (Start / Mark Good / Mark Bad / Skip / Reset, with a banner while bisecting), Git LFS (content diffs, Track / Untrack Files, Fetch / Pull LFS Objects), git-flow (Init, Start / Finish Feature, Release and Hotfix, with plain git), and Local History › Show History / Put Label over VS Code's Timeline.

For AI agents (MCP)

Git Jet includes a read-only MCP server that gives AI agents the repository the way Git Jet sees it, through typed tools instead of raw git in a terminal: repositories, status (staged / unstaged / untracked / conflicted, operation in progress), log (branch, author, path, text and date filters), show_commit, diff (working tree, staged, against HEAD or between revisions), branches (with incoming / outgoing), blame of a range, file_history (following renames), conflicts (yours / base / theirs of a file), stashes, shelves, worktrees and reflog (with the commits a reset or rebase lost).

Everything about it is in the MCP tab of the Git tool window (Git Jet: AI Agents (MCP)…, or the … menu of the Commit and Git tool windows), laid out like WebStorm's Settings › Tools › MCP Server:

The MCP tab of the Git tool window: the switch for VS Code's agents, Node.js, and the other agents with their status and Auto-Configure

  • VS Code agents (GitHub Copilot's agent mode) see it automatically as Git Jet in trusted workspaces: the tab's checkbox (gitjet.mcp.enabled) turns it on and off, and Show in MCP Servers opens VS Code's list.
  • Other agents — Claude Code, Cursor, Antigravity, Gemini CLI and Codex — each have a row with their status read from their own configuration (Configured, Needs update, Not configured, Not installed). Auto-Configure adds Git Jet to it after a confirmation that names the file (Claude Code through its own claude mcp add --scope user), keeping everything else in the file; Remove takes it out; Copy Config puts the agent's entry on the clipboard; Open File opens its configuration. A file Git Jet cannot read is never rewritten. The agents start a copy of the server that survives extension updates, with node: the tab says whether Node.js is on the PATH. They read the project folders the agent gives them (MCP roots) or the folder they are started in.
  • Test Server starts the server the way an agent does and shows how long it took, its tools and the repositories it found; click a tool for the description agents get.
  • Privacy: the server runs locally, only reads the repositories of the folders it is started in, never changes anything, and replaces secret values (tokens, keys, passwords, .env values) with [REDACTED]. Nothing leaves your machine except what the agent itself sends to its model. Changelists are not exposed yet.

Keyboard shortcuts

With gitjet.keymap set to jetbrains (default vscode keeps only the shortcuts that do not clash with VS Code):

Action WebStorm (macOS) Git Jet (macOS) Git Jet (Windows / Linux)
Commit tool window ⌘K ⌘K Ctrl+K
Push… ⇧⌘K ⇧⌘K Ctrl+Shift+K
Update Project ⌘T ⌘T Ctrl+T
VCS Operations popup ⌃V ⌃V Alt+`
Branches popup — ⇧⌘` (always on) Ctrl+Shift+` (always on)
Git tool window (Log) ⌘9 ⌘9 Alt+9
Commit tool window (focus) ⌘0 ⌥0 Alt+0
Rollback… ⌥⌘Z ⌃⌥Z Ctrl+Alt+Z
Show change popup (gutter) — ⇧⌘D Ctrl+Shift+D
Previous / next change ⌃⌥⇧↑ / ↓ ⌃⌥⇧↑ / ↓ Ctrl+Alt+Shift+↑ / ↓
Add to VCS ⌥⌘A ⌥⌘A (always on) Ctrl+Alt+A (always on)
Toggle hunk in commit — ⌥⇧⌘I (always on) Ctrl+Alt+Shift+I (always on)

All actions are also in the Command Palette under Git Jet, and can be rebound in Keyboard Shortcuts.

Key settings

Setting Default What it does
gitjet.git.path auto Git executable (auto-detected from the built-in Git extension or PATH)
gitjet.keymap vscode jetbrains enables the IDE shortcuts
gitjet.commit.enableStagingArea false Use the Git index (staged / unstaged) instead of changelists
gitjet.changelists.allowPartial false Partial changelists: hunks of one file in different changelists
gitjet.update.method merge Update Project with merge, rebase or the branch default
gitjet.update.saveChangesPolicy shelve How Smart Checkout and Update keep your local changes: shelve or stash
gitjet.push.protectedBranches master, main Branches that must not be force-pushed
gitjet.branches.syncControl notDecided Execute branch operations on all roots (several repositories)
gitjet.git.detectNestedRepositories true Register the Git repositories found in subfolders by themselves
gitjet.stash.combineWithShelf false Show stashes and shelved changes in one tab
gitjet.dialogs.mode float Dialogs as floating windows, editor tabs or quick picks
gitjet.fetch.auto false Fetch periodically in the background
gitjet.appearance.theme auto Theme of the views: auto (New UI Dark / Light after your VS Code theme), vscode (your VS Code colors) or any WebStorm theme: Islands Dark / Light / Darcula / High Contrast, Dark, Light, Light with Light Header, Darcula, IntelliJ Light, High Contrast
gitjet.appearance.colorOverrides {} Customize colors of the theme, token by token (with gitjet.appearance.accent, fonts and compact mode)

Everything else is under Settings › Extensions › Git Jet, or in the Git Settings page (Git Jet: Git Settings).

Git Jet activates in workspaces that contain a .git folder, or when you open one of its views.

Known limitations

VS Code does not allow every JetBrains surface; where it doesn't, Git Jet rebuilds it inside its own webviews. The differences you will notice:

  • Dialogs open as floating auxiliary windows (or editor tabs), not true modal windows.
  • The branch widget lives in the status bar and the Commit window header — extensions cannot add a widget to the title bar.
  • The native Source Control view cannot be hidden by an extension: hide it once by hand (see Getting started).
  • Gutter popups are VS Code hovers with the hunk diff and action links, not the IDE's floating editor.
  • The editor banner "File has unresolved merge conflicts" is a CodeLens on the first line.
  • Remote and virtual workspaces: Git Jet is a workspace extension, so it runs where the repository is (Remote-SSH, WSL, Dev Containers, Codespaces); these setups have not been tested as thoroughly as local folders yet, reports are welcome. Virtual workspaces (e.g. github.dev) are not supported.
  • Restricted Mode: in an untrusted workspace Git Jet does not run Git at all (hooks and other repository-configured programs could execute). Trust the workspace to enable it.

Privacy

Git Jet collects no telemetry and sends no data anywhere of its own accord. It only talks to the Git remotes you use, and to the GitHub / GitLab APIs when you sign in or use the hosting features (Clone, Share, Pull Requests). The AI actions run only when you invoke them, and send the changes, commit or conflict they work on — with secret values replaced by [REDACTED] — to the language model you picked: through VS Code (for example GitHub Copilot), or through the AI command line tool you allowed (Claude Code, Codex CLI, Gemini CLI) with your own account, under that provider's terms. Git Jet never reads or stores those tools' credentials. The MCP server answers only the agents you run, locally and read-only, with secrets redacted. Credentials you choose to remember are kept in VS Code's SecretStorage (the system keychain).

License

Apache License 2.0. Git Jet ports logic from the git4idea plugin of JetBrains/intellij-community (Apache 2.0) and uses New UI icons and color palettes from that repository; it bundles the Inter and JetBrains Mono fonts (SIL OFL 1.1). See NOTICE and THIRD_PARTY_NOTICES.md.

Git Jet is not affiliated with or endorsed by JetBrains s.r.o. WebStorm, IntelliJ IDEA and JetBrains are trademarks of JetBrains s.r.o.; the extension does not use JetBrains product logos.

Contributing: see CONTRIBUTING.md. Security issues: see SECURITY.md.

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