Giti — Git Graph
A clear, readable Git history graph for VS Code, built with native VS Code styling.
Features
- Readable graph: each branch keeps its own lane and color, lines stay straight while a branch is open, and merges curve smoothly into their parent. Merge commits use hollow dots, and HEAD has a ring.
- Ref badges: local branches, remote branches, tags, and detached HEAD appear next to each commit. A local branch and the remote it tracks on the same commit share one badge (
main · origin).
- Sidebar: branches (grouped by folder, with ahead/behind counts), remotes, tags, and stashes. Click an item to jump to its commit. Double-click a branch to check it out.
- Commit details: the full message, author, committer, parents, and changed files with line counts, shown as a list or tree. Click a file to open its diff in the VS Code diff editor.
- Uncommitted changes appear as a dashed row on top of HEAD, with merge conflicts, staged changes, and unstaged changes in separate groups.
- Search by message, author, email, hash, or ref name, then step through matches with Enter / Shift+Enter (
Cmd/Ctrl+F focuses the search box).
- Filter the graph to all branches, the current branch, or a single branch, and toggle remote branches on or off.
- Native context menus to checkout, create a branch or tag, merge, rebase, cherry-pick, revert, reset, push, rename, delete, and apply, pop, or drop stashes.
- Fetch / Pull / Push use the built-in Git extension, so your existing credentials and sign-in prompts work.
- Auto-refreshes when the repository changes. Supports multi-root workspaces and nested repositories, with lazy loading for large histories.
Usage
Open the graph with Giti: Show Git Graph from the Command Palette, the graph button in the Source Control title bar, or Graph in the status bar.
Keyboard: ↑ ↓ PageUp PageDown Home End move the selection, and Cmd/Ctrl+F searches.
Settings
| Setting |
Default |
Description |
giti.pageSize |
1000 |
Commits loaded at a time. More load when you scroll to the bottom. |
giti.commitOrder |
date |
date orders commits by date; topo keeps each branch's commits together. |
giti.dateFormat |
absolute |
absolute (2026-10-30 14:02) or relative (3 hours ago). |
giti.showRemoteBranches |
true |
Include remote branches when the graph opens. |
giti.showStatusBarItem |
true |
Show the status bar button. |
Requirements
Git installed, and the built-in Git extension enabled (git.enabled).
Development
npm install
npm run build # or: npm run watch
npm run package # produces giti-<version>.vsix
Press F5 in VS Code to launch an Extension Development Host.
| |