IntelliGit brings a JetBrains-style Git workflow into VS Code, so you can stage, commit, inspect history, and manage branches without bouncing between multiple tools.
- Move faster on daily Git work with one focused UI for commit, history, and branch actions.
- Reduce context switching by keeping staging, diffs, commit graph, and commit details in IntelliGit panels.
- Handle risky Git operations with guardrails (confirmations and action availability rules for pushed/merge commits).
- Get familiar behavior if you are coming from IntelliJ/PyCharm Git tooling.
- Commit tab with file tree, selective staging checkboxes (section/folder/file), diff open on click, and commit message area
- Toolbar actions: Refresh, Rollback, Group by Directory, Shelve, Show Diff Preview, Expand All, Collapse All
- Commit, Commit and Push, and Amend support
- Shelf tab for stash-based "shelf" workflow: save full or partial changes, then Apply, Pop, or Delete
Why this helps:
- You can build clean commits quickly, even in large change sets.
- You can park unfinished work safely and come back later without losing flow.
- Three-pane layout: branch column, commit list/graph, and commit detail pane
- Canvas-based lane graph with infinite scroll pagination for large histories
- Text/hash search and branch filter
- Selected commit shows changed files, file stats, and commit metadata
Why this helps:
- You can understand branch history and merge paths faster.
- You can inspect any commit without leaving the graph context.
Available actions:
| Action | Applies To |
|---|---|
| Checkout | Local, Remote |
| New Branch from... | Current, Local, Remote |
| Checkout and Rebase onto Current | Local, Remote |
| Rebase Current onto Selected | Local, Remote |
| Merge into Current | Local, Remote |
| Update | Current, Local |
| Push | Current, Local |
| Rename... | Current, Local |
| Delete | Local, Remote |
Why this helps:
- Most branch operations are available directly where you browse history.
- Less command-line overhead for common branch maintenance tasks.
- Copy Revision Number
- Create Patch
- Cherry-Pick
- Checkout Revision
- Reset Current Branch to Here
- Revert Commit
- Undo Commit (unpushed, non-merge)
- Edit Commit Message (unpushed, non-merge)
- Drop Commit (unpushed, non-merge)
- Interactively Rebase from Here (unpushed, non-merge)
- New Branch
- New Tag
Why this helps:
- Advanced history editing is available in-place, with safer availability rules.
- Activity bar badge shows current changed-file count in the workspace
Why this helps:
- You always know if your working tree is clean before pushing or switching context.
- Open a Git repository in VS Code.
- Open IntelliGit from the activity bar.
- Use the
Committab to stage files, write a message, and commit. - Open the bottom IntelliGit panel to inspect graph history, filter by branch, and review commit details.
- Use branch or commit context menus for advanced operations.
IntelliGit can open merge conflicts in a JetBrains IDE merge tool (PyCharm, IntelliJ IDEA, WebStorm, etc.).
- Open VS Code Settings and search for
IntelliGit: JetBrains Merge Tool Path. - Set
intelligit.jetbrainsMergeTool.pathto your JetBrains app path. - On macOS, you can paste the
.apppath directly (IntelliGit auto-resolves the internal executable). - Keep
intelligit.jetbrainsMergeTool.preferExternalenabled (default) if you want IntelliGit to use JetBrains first.
Examples (macOS):
/Applications/PyCharm.app/Applications/IntelliJ IDEA.app/Applications/WebStorm.app/Users/<your-user>/Applications/PyCharm.app
Examples (Windows):
C:\\Program Files\\JetBrains\\PyCharm 2025.1\\bin\\pycharm64.exeC:\\Program Files\\JetBrains\\IntelliJ IDEA 2025.1\\bin\\idea64.exeC:\\Program Files\\JetBrains\\WebStorm 2025.1\\bin\\webstorm64.exe
Helpful command:
- Run
IntelliGit: Detect JetBrains Merge Toolfrom the Command Palette to auto-detect installed JetBrains IDEs and save the path.
If no JetBrains IDE path is configured, IntelliGit falls back to the VS Code internal merge editor.
- VS Code
1.96.0or later - Git installed and available on
PATH
Search for IntelliGit in VS Code Extensions, or install from:
# Install dependencies
bun install
# Build (development)
bun run build
# Watch mode
bun run watch
# Run linter
bun run lint
# Type check
bun run typecheck
# Run tests
bun run test
# Format code
bun run formatbun install
bun run build
bun run package
code --install-extension intelligit-*.vsix# Run all unit and integration tests
bun run test
# Run tests in watch mode (re-runs on file changes)
bun run test -- --watch
# Run a specific test file
bun run test -- tests/unit/gitops.test.ts
# Run tests matching a pattern
bun run test -- -t "CommitPanelApp"GitExecutor (simple-git wrapper)
|
GitOps (operations layer)
|
View Providers (extension host orchestration)
|
Webviews (React apps for commit panel + commit graph panel)
Data flow highlights:
- Commit selection in graph requests commit details from extension host and updates detail pane.
- Branch selection filters the graph and clears stale commit detail state.
- Commit panel file count updates the activity badge.
- Refresh reloads branch state, history, and commit panel data together.
| Component | Technology |
|---|---|
| Extension host | TypeScript (strict), ES2022 |
| Git operations | simple-git v3 |
| Webviews | React 18 |
| Graph rendering | HTML5 Canvas |
| Bundler | esbuild |
| Package manager | Bun |
| Testing | Vitest |
| Linting | ESLint |
| Formatting | Prettier |
