WSGit — WebStorm-style Git by daysv
WSGit adds WebStorm-style Git power-ups on top of VS Code’s built-in Git.
Changes / staging / commits stay 100% in the built-in UI — no duplicate panels.
Source: github.com/daysv/vscode-wsgit

简体中文说明
Features
- One graph module in Source Control — view “Commits (Branches · History)” lists branches, tags and commit history together:
- Lane-colored commit rows (same lane = same color), gold star marks the current HEAD; commits expand into per-commit changed files grouped by directory, with file diff preview (previous commit vs. commit) via virtual documents.
- Branch management via right-click: checkout / new / rename / delete (with protected branches and force-delete confirmation), remote branches and tags included.
- Right-click a commit: Commit Info, Copy SHA, Revert Commit, Reset to this commit (soft / mixed / hard).
- Editor context filters — two levels of history filtering:
- Show file history in the commit graph → only commits touching this file (
git log -- <path>).
- Show history of this line / selection → only commits that changed this line (
git log -L).
- A filter row appears in the graph; click it to clear.
- WebStorm-style Revert / Reset on built-in change rows:
- Revert — discard all local modifications of the selected files (deletes untracked files, irreversible).
- Reset — staged → unstage; unstaged → revert changes.
- SCM toolbar actions (built-in Git view title bar): Revert All, Undo Last Commit (mixed reset, keeps changes), Pull…, Push… with incoming/outgoing preview; force-with-lease push requires an extra confirmation by default.
Requirements, design notes and the full feature/plan matrix live in docs/ (FEATURES.md / PLAN.md).
Internationalization
The UI follows your VS Code display language (English, 简体中文). Source strings are English by default and are localized through vscode.l10n (l10n/bundle.l10n.zh-cn.json); the extension manifest is localized via package.nls.json / package.nls.zh-cn.json. Pull requests for other locales are welcome.
Install
- From the Marketplace: search WSGit (after publication).
- Or from a
.vsix: code --install-extension wsgit-plus-0.1.0.vsix.
Requirements
- VS Code ≥ 1.90 (needs the
l10n API, available since 1.73)
- A system
git CLI (same one VS Code’s built-in Git uses); override with the wsgit.git.path setting
- Keep the built-in Git extension enabled — WSGit builds on its changes UI
Settings
| Setting |
Default |
Meaning |
wsgit.git.path |
git |
Path to the git executable |
wsgit.defaultRemote |
origin |
Default remote name when not specified |
wsgit.protectedBranches |
["master","main"] |
Local branches that cannot be deleted / force-renamed from the panel |
wsgit.push.forceRequiresConfirm |
true |
Require an extra confirmation for force push |
wsgit.log.maxCommits |
200 |
Max commits loaded per repository in the graph |
Colors are contributed as wsgit.current and wsgit.lane.0–wsgit.lane.7 and can be overridden via workbench.colorCustomizations.
Development
npm install # devDependencies only (typescript, @vscode/vsce)
npm run compile # tsc -> dist/
npm test # node:test engine unit tests (30 cases)
npm run package # produce wsgit-plus-<version>.vsix
Debug: open this folder in VS Code and press F5 (see .vscode/launch.json).
Repository layout
src/engine/ pure git parsers & runner (no vscode imports, unit-tested)
src/scm/ repo registry + virtual blob document provider (wsgitblob://)
src/views/ graph TreeDataProvider, lane layout (graphLayout)
src/commands/ command layer (branches/tags, revert/reset, pull/push, filters)
l10n/ vscode.l10n bundles (zh-cn)
License
MIT
简体中文
WSGit 在 VS Code 内置 Git 之上提供对标 WebStorm 的 Git 管理辅助。更改/暂存/提交全部由内置 Git 负责(无重复面板),本扩展只做增强:
- 源代码管理内的提交图(分支·历史):泳道配色提交 + 金色星标当前 HEAD;提交可展开查看改动文件(目录层级)并预览 diff;分支/标签右键管理(受保护分支、未合并强删确认);提交右键支持详情 / 复制 SHA / Revert Commit / Reset(soft/mixed/hard)。
- 编辑器右键:在提交图中筛选此文件 / 筛选该行或选中区间(
git log -L),点筛选行即清除。
- 内置更改行右键 WebStorm 风格 Revert / Reset;SCM 标题栏 Revert All / Undo Last Commit / Pull / Push(带 incoming/outgoing 预览,force push 默认二次确认)。
界面文案跟随 VS Code 显示语言(英文默认 + 简体中文包);欢迎其它语言的本地化贡献。