Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitStudio — JetBrains-style Git Graph, Blame & MergeNew to Visual Studio Code? Get it now.
GitStudio — JetBrains-style Git Graph, Blame & Merge

GitStudio — JetBrains-style Git Graph, Blame & Merge

GitStudio

|
210 installs
| (2) | Free
| Sponsor
Free, open-source Git GUI & commit graph for VS Code and Cursor. Git Studio brings a JetBrains-style Git workflow into the editor — inline blame, file history, hunk & line staging, 3-pane merge, interactive rebase with universal Undo, stash/shelf, worktrees, and in-editor GitHub PRs. A free alternat
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitStudio

The complete Git suite for VS Code and Cursor.
A JetBrains-grade workflow, free on every repo.

VS Marketplace version Open VSX version CI build status License: Apache-2.0 Sponsor on GitHub Buy me a coffee

GitStudio — the complete Git suite for VS Code and Cursor

VS Code's built-in Git is functional but flat. GitLens is excellent at information — blame, history, lenses — but the doing (merging, staging, rebasing, resolving) still sends you to a terminal or a separate app. And the moment you want a commit graph or worktrees, you hit a paywall.

GitStudio owns both halves, and charges for neither. A real commit graph, inline blame, file and line history, hunk- and line-level staging, a three-pane merge editor, drag-to-reorder interactive rebase with a universal Undo, first-class branches, stashes, worktrees and tags, in-editor GitHub pull-request review, and an optional bring-your-own-key AI layer.

Free on public and private repos. No account, no sign-up, no analytics, no feature flags waiting on a credit card.


What's inside

Visualize Full-screen commit graph and a sidebar-native commit rail · inline + full-file blame with a code-age heatmap · file & line history · revision navigation · reflog time machine
Change Instant hunk- & line-level staging · guided commit box (amend, sign-off, author, Commit & Push) · side-by-side and unified diff · 3-pane merge editor that opens conflicts as they appear
Rewrite Drag-to-reorder interactive rebase (pick · reword · edit · squash · fixup · drop) · a reflog-powered Undo for every destructive operation
Manage Branches with live ↑/↓ badges, fetch-in-place and pull-without-checkout · remotes · tags · stashes · worktrees · GitHub-style branch compare
Collaborate GitHub pull requests in the editor — list, check out, diff, comment inline, submit, merge, create
Assist Optional AI: commit messages, explain-diff, summaries, code review. Bring your own key, use Copilot for free, or point it at a local model. Off by default.

The commit graph

A real graph, not a log with lines drawn on it. Colored branch lanes, ref chips, and author avatars riding the commit nodes. It stays fast at tens of thousands of commits because rendering is virtualized — it draws what's on screen and streams the rest as you scroll. Check out, cherry-pick, branch, tag, or reset from any commit, with full keyboard navigation and theme-aware light, dark, and high-contrast palettes.

The full Commit Graph panel: colored branch lanes, ref chips, and author avatars on the commit nodes, with commit details alongside

The graph also lives in your sidebar — built for that width, not shrunk to fit. Compact two-line rows (message on top; refs, author, age below) show 3–4× more history at a glance, the true branch topology renders as a rail with mini author avatars, and remote branches fold into their local chip. Scoped search (message, author, SHA, refs) sits in the header. Every commit action is on right-click; double-click promotes a commit into the full graph for deep work.

The Commits sidebar view: compact two-line commit rows with a branch topology rail, mini author avatars, and scoped search

Staging and sync, without the wait

Staging is instant. Files move the moment you click — the git operation reconciles in the background. Stage, unstage, or discard by file, folder, or whole group, and stage exactly the hunks or lines you mean from any editor or diff (Ctrl/Cmd+Alt+G S on a selection).

Sync is live, not a status readout. The ahead/behind counts in the header are the Push and Pull buttons, and they run the operation with a spinner in place. Force-push defaults to the safer --force-with-lease.

The branch dialog does the work without closing. Fetch runs in place — the item spins, then every branch row's ↑/↓ badges update, so you can see exactly what's unpulled where. Local branches can be pulled without checking them out. Each branch carries its full operation set: checkout, merge, rebase onto, rename, delete, push/publish, set upstream, branch from here, create worktree, compare.

The Changes view: staged and unstaged groups, the guided commit box, and live Push/Pull buttons with ahead/behind counts The branch dialog: per-branch ahead/behind badges, in-place fetch, and pull-without-checkout from a branch submenu

Blame, file history, line history

Authorship where you're reading. Current-line blame renders inline at the end of the line and in the status bar. Toggle full-file annotations (Ctrl/Cmd+Alt+G B) for a code-age heatmap — recent changes warm, old changes cool — with rich hovers that link straight to the commit.

History at three depths. Per-file history, line history (blame-over-time for the code under your cursor, Ctrl/Cmd+Alt+G H), and revision navigation that steps a file backward and forward through its versions. When something goes truly wrong, Show Reflog (Time Machine) lists every place HEAD has been — so lost commits are recoverable, not gone.

Merge, rebase, and a real Undo

Yours, result, theirs — the JetBrains layout. Conflicted files open in a three-pane merge editor with one-click accept ribbons per conflict, and conflicts auto-open as they appear during a merge, rebase, or cherry-pick. No hand-editing <<<<<<< markers.

Rebase you can see. Start Interactive Rebase… opens a drag-to-reorder workspace — pick, reword, edit, squash, fixup, drop — with a plain-English preview of what each action does, instead of a todo file in a text buffer.

Undo is universal. GitStudio snapshots the reflog before every destructive operation, and Ctrl/Cmd+Alt+G Z reverses the last one — a bad rebase, a wrong reset, an accidental branch delete. History that's already pushed falls back to a safe Revert rather than rewriting shared commits. Undo never hijacks your editor's Ctrl/Cmd+Z.

Branches, stashes, worktrees, tags, remotes

  • Stashes get a first-class view: one-click Stash Changes, per-row Apply / Pop / Branch / Drop, plus a stash control in the Changes toolbar.
  • Worktrees get their own view: open, create, remove, lock/unlock, prune — the sane way to review a PR without stashing your work.
  • Tags support checkout, delete, and push; remotes support add, manage, and fetch — all reachable from the branch dialog, the graph, or the Command Palette.

GitHub pull requests, in-editor

Review where the code is. Sign in once with VS Code's built-in GitHub account — no extra token — and the Pull Requests view lists open PRs for the current repo. Open the description, check the PR out, start a review, comment inline on the diff, submit, and merge with your preferred method. Create new PRs from the editor too. Not a GitHub repo, or not signed in? The view shows a quiet connect prompt; nothing breaks.

Branch compare

A GitHub-style compare, locally, for any two refs. Compare Branches/Tags… (or Compare with Current from any branch) opens a panel with ahead/behind counts, the exact commits between the two refs, and the changed files as native diffs. Answer "what would this merge actually bring in" before you merge it.

Optional AI, on your terms

Off until you turn it on, and it never gates a Git operation. GitBrain adds Generate Commit Message, Explain Diff, Summarize Changes, and Review Changes — a structured review of your working tree with a customizable prompt — plus a ✨ button in the commit box that drafts a message from your staged diff.

Connect it however you already pay for AI:

  • Zero-key — with GitHub Copilot (or Cursor's models), GitStudio uses the VS Code Language Model API directly. Nothing to configure.
  • Anthropic or any OpenAI-compatible endpoint — bring a key, or point it at a local server (Ollama, LM Studio) with no key at all.
  • Local CLI agents — drive Claude Code, Codex, or Gemini CLI through their existing login.

Keys are encrypted at rest in GitStudio's own private store and never reach a webview. GitStudio deliberately does not use your OS keychain, so it can never interrupt you with a system password prompt.

Install

VS Code — search GitStudio in the Extensions view, or:

code --install-extension gitstudio.gitstudio

Cursor / VSCodium / Windsurf / Gitpod — via the Open VSX Registry:

cursor --install-extension gitstudio.gitstudio

…or replace cursor with codium / windsurf, or install from the Open VSX UI.

Then open a folder with a Git repo and click the GitStudio icon in the Activity Bar. The sidebar reads top-to-bottom as a workflow: Changes → Commits → Stashes → Worktrees → Pull Requests. Run GitStudio: Get Started for a guided tour.

Prefer a standalone app? The same engine ships as a native desktop client for macOS, Windows, and Linux — with an integrated terminal, a GitHub home for your repo, and an AI assistant. Grab it from gitstudio.dev.

Keyboard shortcuts

Everything lives under one conflict-free chord — Ctrl+Alt+G (Cmd+Alt+G on macOS), then a letter:

Action Windows / Linux macOS
Toggle file blame annotations Ctrl+Alt+G B Cmd+Alt+G B
Show line history Ctrl+Alt+G H Cmd+Alt+G H
Open changes vs HEAD Ctrl+Alt+G D Cmd+Alt+G D
Stage selected lines Ctrl+Alt+G S Cmd+Alt+G S
Unstage selected lines Ctrl+Alt+G U Cmd+Alt+G U
Undo last Git operation Ctrl+Alt+G Z Cmd+Alt+G Z

In the commit box, Enter commits and Shift+Enter inserts a newline. All bindings are remappable in Keyboard Shortcuts.

Settings

Setting Default What it does
gitstudio.changes.autoRefresh true Keep the Changes list current after a save, and on window focus
gitstudio.blame.inlineEnabled true Inline current-line blame at the end of the line
gitstudio.blame.heatmap true Code-age heatmap on full-file blame annotations
gitstudio.merge.autoOpen true Auto-open conflicted files in the 3-pane merge editor
gitstudio.push.forceWithLease true Use --force-with-lease when force-pushing
gitstudio.ai.provider auto auto · copilot · anthropic · openai · off
gitstudio.ai.commitStyle conventional conventional · concise · descriptive
gitstudio.pr.defaultMergeMethod squash merge · squash · rebase
gitstudio.errorReporting.enabled true Anonymous, scrubbed crash reports (honors VS Code's telemetry setting)

Requirements

git on your PATH (any recent version) — GitStudio talks to git directly, no other extension required — and VS Code 1.78+, Cursor, or VSCodium. A GitHub sign-in is optional (for pull requests), as is an AI provider. Everything else works fully offline.

Why GitStudio

  • vs GitLens — GitLens pioneered blame-and-history in VS Code and is still excellent at it. But its commit graph, worktrees, and AI sit behind a paid plan, and it's an information layer more than an interaction one. GitStudio's entire feature set is free on public and private repos, and it handles the doing, not just the showing.
  • vs Git Graph — a well-liked graph, but a graph alone isn't a workflow. GitStudio pairs its graph (panel and sidebar) with staging, merge, rebase, undo, stashes, worktrees, and PRs in the same extension.
  • vs GitKraken Desktop — a polished client, but a separate paid app outside your editor. GitStudio brings the same class of graph and workflow into VS Code and Cursor, where your code, terminal, and AI tooling already live.

Privacy

No accounts, no usage tracking, no analytics — GitStudio never reports what you do. The one thing it sends, during the beta, is anonymous crash reports when a command fails, so bugs get found without waiting for someone to file them. Each report is only the shape of a failure — an error type with a scrubbed message, or the name of the git operation that failed — tagged with a random install id and your OS/editor version. Absolute paths, home directories, emails, remote URLs, tokens, and full commit SHAs are stripped before anything leaves your machine. Never your code, file names, commit messages, or branch names. It honors VS Code's global telemetry.telemetryLevel, and you can opt out of just this with gitstudio.errorReporting.enabled: false.

Support

GitStudio is free, Apache-2.0, and built nights & weekends. If it earns a place in your workflow:

  • ❤️ Sponsor on GitHub — recurring support
  • ☕ Buy me a coffee — a one-off tip
  • ⭐ Star the repo or rate it on the Marketplace — free, and it genuinely helps

Bugs and feature requests: github.com/GitStudioHQ/gitstudio/issues.

License

Apache-2.0 — developed in the open at GitStudioHQ/gitstudio. Portions of the shared engine and webview UI originate from Merge Studio (MIT); see NOTICE.


JetBrains, IntelliJ IDEA, and WebStorm are trademarks of JetBrains s.r.o. GitLens, GitKraken, and Sourcetree are trademarks of their respective owners. GitStudio is an independent project and is not affiliated with, or endorsed by, any of them.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft