Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitTreeNew to Visual Studio Code? Get it now.
GitTree

GitTree

Javian Picardo

|
1 install
| (0) | Free
A SourceTree- and GitLens-class Git client for VS Code with first-class multi-repo support.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitTree — Visual Git Management for VS Code

A SourceTree-class Git client inside VS Code — featuring a real commit graph, line-level staging, multi-repo support, and a command sheet that teaches you Git while you use it.

Every button shows the exact Git command it runs. Every action is editable before execution. The GUI makes you better at the command line instead of hiding it.


✨ What Makes GitTree Different

1. Three-Pane Layout — See Everything At Once

Unlike VS Code's flat file list, GitTree shows your branches, commit graph, and changes side-by-side. No modal dialogs, no context switching.

Three-pane layout with branches, commit graph, and file diffs

  • Left pane: Branches, tags, remotes, and stashes organized hierarchically with fuzzy-search filtering
  • Middle pane: The full commit graph with correct lane assignment, real-time updates as you work
  • Right pane: File-level diff, line-level staging, and conflict resolution — all visible at once

2. Commit Graph That Actually Works

Real lane assignment across merges, decorations for HEAD/tags/upstream, author and date columns, and instant navigation. Virtualised so a 50,000-commit repository scrolls at full speed.

Commit graph showing lanes, merges, and decorations

Key features:

  • Click a commit to see its full diff side-by-side
  • Navigate by keyboard: j/k to move, Space to select
  • Filter by message, author, or date without re-rendering
  • Decorated with refs (branches, tags, HEAD, upstream markers)

3. Line-Level Staging — Stage Exactly What You Mean

Pick individual lines, hunks, or whole files. The interface shows which state each file is in using a two-cell pill: ◧ (staged), ◨ (unstaged), or ◧◨ (both).

File staging interface with two-cell pills showing file state

  • Stage by file, hunk, or individual line
  • Drag files between Staged and Unstaged groups
  • Use → and ← keyboard shortcuts
  • Multi-select with Space, arrow keys to navigate
  • Discard with confirmation to prevent accidents

4. Commit with Full Control

Amend, sign-off, GPG/SSH signing, co-authors, and commit templates — all editable before you press Enter.

Commit dialog with message, amend, signoff, and signing options

  • Pre-commit hooks show their output verbatim, never replaced with "commit failed"
  • Co-authors via trailer syntax (recognized by GitHub, GitLab, etc.)
  • Signing — GPG or SSH (git handles the credential, GitTree just enables the flag)
  • Templates — .gitmessage support

5. The Command Sheet — Learn Git While You Click

Every action opens a modal showing the exact command, editable in real-time. Toggle options and the command rewrites itself. Hover to see a plain-English explanation of each flag.

Command sheet with editable command field and toggleable options

Why this matters:

  • Mistyped? See the dialog before anything runs
  • Want to add a flag? Edit the command directly
  • Want to understand the flags? Hover for the teaching card
  • "Why this command?" button explains the concept (what --rebase does, when --force-with-lease is safe)

6. Command Log — Copy, Send to Terminal, or Re-run

A live console of every git invocation, exit code, runtime, and output. Copy any command and paste it into your terminal. Or send it unsigned so you can read and edit it first.

Command log showing all git commands, exit codes, and durations

  • Scroll through your session history
  • Copy any command verbatim (including pipes/redirects)
  • "Send to Terminal" types it in the integrated terminal without running it
  • Filter by command, repo, or date

7. Branch Management at Scale

With forty-seven branches, a flat list is useless. GitTree nests branches by /, collapses folders, and lets you fuzzy-search the full path.

Branch sidebar with collapsible folders and Current/Recent pinned

  • Current and Recent branches pinned above the tree
  • Type to filter — matches the whole path, not just the prefix
  • Enter checks out the best match (or double-click)
  • Shows ahead/behind counts and whether upstream exists

8. Fetch, Pull, Push, Merge, Stash — All at Your Fingertips

One-click toolbar buttons for the most common operations. Each opens the command sheet for a second to review. Keyboard shortcuts available (press ? to see them all).

Toolbar with Commit, Pull, Push, Branch, Merge, Stash buttons

Action Keyboard Notes
Fetch f --all and --prune by default
Pull p --rebase --autostash by default
Push Shift+P Sets upstream on first push
Branch Create b Checks out immediately
Merge m --no-ff by default (leaves history clear)
Stash Push s --include-untracked by default

9. Multi-Repo Workspaces

Open a folder and GitTree finds every repository inside it — at any depth. Understands the difference between nested repos, submodules, and worktrees.

Repository tabs showing multiple open repos with quick-add button

  • Tabs for each open repository
  • Scroll position, selection, and filters remembered per-repo
  • Detects and explains submodules vs. nested repos (prevents accidents)
  • Worktrees never presented as independent clones
  • + button opens a folder dialog to add another repository

10. Themes — Light, Dark, macOS, Graphite, Midnight

Follows your VS Code theme by default. Also offers curated system-class alternatives.

Theme selector dropdown showing multiple theme options

  • Cycle themes with Ctrl+Alt+T (macOS: ⌘+⌥+T)
  • High-contrast mode fully supported
  • Animations respect prefers-reduced-motion

🎬 Feature Walkthroughs

Workflow: Stage a Change and Commit It

Find a file with changes, click specific lines or hunks to stage, write a commit message, and press Ctrl+Enter to commit. All changes are visible before you run anything.

Workflow: Check Out a Branch Via Sidebar

Type in the filter box to find a branch, press Enter to switch. Watch the graph and diff update in real time as you work across branches.

Workflow: Fetch, Review, and Push

Press f for fetch, review incoming changes in the graph, press Shift+P to push when ready. Full visibility into what's being pushed.


📋 Complete Feature List

✅ Working today:

  • ✓ Repository discovery (nested, submodules, worktrees, at any workspace depth)
  • ✓ Real commit graph with correct merge lane assignment
  • ✓ Status and staging (file / hunk / individual line)
  • ✓ Commit (amend, sign-off, GPG/SSH signing, co-authors, templates)
  • ✓ Diff (file-level and line-level, side-by-side and inline)
  • ✓ History search (by message or author)
  • ✓ Fetch, Pull, Push, Branch, Merge, Stash, Tag operations
  • ✓ Branch checkout and delete via sidebar
  • ✓ Stash pop/drop operations
  • ✓ Command log and editable command sheet
  • ✓ Remote management (add / remove / setUrl)
  • ✓ Settings panel (identity, appearance, repository details)
  • ✓ Integrated terminal with command clipboard
  • ✓ Themes (Light, Dark, macOS Light/Dark, Graphite, Midnight)
  • ✓ Full keyboard navigation
  • ✓ Multi-repo workspaces with per-repo state
  • ✓ Open another repository dialog (+ button)

🛠️ Requirements

VS Code 1.100 or newer
Git 2.11 or newer, on your PATH (2.20+ recommended)
Platforms Windows, macOS, Linux

GitTree runs your Git binary, so your config, credential helpers, hooks, SSH keys, and signing setup all work exactly as they do in a terminal. Nothing is reimplemented, and no credentials pass through the extension.

Git not on PATH? Set gitTree.git.path in settings to the absolute path.


🚀 Getting Started

  1. Install GitTree from the VS Code Extensions marketplace
  2. Reload VS Code
  3. Open a folder — or a parent folder holding several repositories
  4. Click the GitTree icon in the activity bar (or press Ctrl+Shift+G then T)

The Repositories view lists everything found. Click one to open it as a tab. Click the + button to add another repository to your workspace.


⌨️ Keyboard Shortcuts

Press ? in GitTree for the full list. Here's the quick reference:

Action Keys
Move (up/down) j / k
Select Space
Stage / Unstage s / u
Commit Ctrl+Enter
Filter refs /
Fetch / Pull / Push f / p / Shift+P
Branch / Merge b / m
Stash Shift+S
Changes / History g c / g h
Focus pane 1/2/3 Ctrl+1 / Ctrl+2 / Ctrl+3
Cycle theme Ctrl+Alt+T

⚙️ Settings

Setting Default What it does
gitTree.git.path (auto) Absolute path to your Git binary
gitTree.discovery.maxDepth 4 Folder depth to scan for repositories
gitTree.discovery.excludeGlobs [] Extra folder names to skip
gitTree.followActiveEditor true Active repo follows the file you're editing
gitTree.autoRefresh true Auto-refresh when files change (press r to toggle)
gitTree.accentColor #007AFF Interface accent color
gitTree.graph.density comfortable Commit graph row height
gitTree.dateFormat relative How commit dates render (relative/absolute/iso)

node_modules, dist, build, target, .venv and similar are skipped automatically.


🔒 Privacy

GitTree runs entirely on your machine. It executes your local Git binary and reads your repositories. It sends nothing anywhere — no telemetry, no analytics, no network access of any kind.

Future AI features will be off by default, require explicit opt-in, show you the exact payload before anything is sent, and never run in the background.


💙 Support GitTree

GitTree is free and open source. If you find it useful and want to support development:

☕ Buy Me a Coffee — Help keep GitTree maintained and improved.

Your support goes directly towards:

  • Bug fixes and stability improvements
  • New features and enhancements
  • Documentation and community support

📄 License

Copyright (c) 2026 Javian Picardo Group Inc

Licensed under the MIT License. See the LICENSE file for details.


🔗 Resources

  • GitHub Repository — Source code, issues, and contributions
  • Marketplace — Install the extension

Made with ❤️ by Javian Picardo Group Inc

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