DEV Community

Javian Picardo
Javian Picardo

Posted on

GIT Tree VS Code Extension

I got tired of switching between VS Code and a separate Git app, so I built one into the editor.

It's called Git Tree, a free, open-source VS Code extension.
🔗 VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=javian-picardo-group-inc.git-tree

Everything it supports today:

🌳 History
• A real commit graph next to your branches, the changed files and the diff, in one panel
• Search commits by message, author or SHA
• Double-click a commit to check out its branch; right-click it for every action (merge, rebase, cherry-pick, revert, reset, tag, branch, archive, create a patch, copy the SHA), with its full details one click away

✅ Changes and commits
• Stage whole files, hunks or single lines, with checkboxes or Stage / Unstage buttons on every file and section
• ✨ Draft the commit message with the AI model you already use in VS Code
• Amend, sign-off, git hooks on or off, and Commit & Push in one step
• Resolve merge conflicts with one click: use mine, use theirs, or open the editor

🔄 Branches and sync
• Fetch, pull, push, merge, new branch and tag from the toolbar; each sheet closes itself when the command succeeds
• Branches grouped by folder, with recent ones pinned and a filter that finds any branch
• A Push tab that shows exactly what a push would send
• Stashes: apply, pop or drop any one of them

📂 Worktrees
• Two branches checked out at once in separate folders, to review a pull request without stashing your work
• Create, open, lock, move, prune and remove them, and choose where they live

🔀 Pull requests
• GitHub, Azure DevOps, GitLab and Bitbucket, detected from your remote
• List, create, review, comment, approve and merge without leaving the editor; a branch that isn't on GitHub yet is pushed for you first

🧭 Everyday comfort
• Several repositories as tabs, including nested repos and submodules
• When git refuses something, a small card explains it and offers the fix: Stash & Retry, Pull, or Push and Set Upstream
• Keyboard shortcuts for everything
• Follows your VS Code theme, or pick Light, Dark, Graphite or Midnight, down to the scrollbars and checkboxes
• A Git Tree button in the status bar opens it from anywhere

The part I care about most: every button shows the exact git command before it runs, and you can edit it. Everything that ran goes into a log. It's a GUI that teaches you git instead of hiding it.

It runs your local git and sends no telemetry. MIT licensed.

I'd love feedback from anyone who lives in VS Code and Git all day. What would make you switch from your current Git client?

VSCode #Git #OpenSource #DeveloperTools #SoftwareEngineering #DevEx

Top comments (0)