This repository contains two focused Visual Studio Code extensions. GitNav is the primary, standalone extension: it brings visual Git history and guarded Git workflows into the editor. DotNav adds solution-first navigation and development tools for .NET projects.
VS Code's built-in source control is useful for everyday changes, but understanding repository history and running multi-step Git operations often means switching between views and terminal commands. GitNav puts those workflows in one visual panel.
- Read branches, tags, commits, stashes, worktrees, and changed files in a visual Git graph.
- Compare files or selected lines against another branch.
- Inspect the commit history of a selected range of code.
- Run branch, stash, reset, cherry-pick, revert, and rebase workflows with contextual confirmations.
- Continue, skip, or abort conflicted operations from their current Git state.
- Block history-rewriting actions on protected branches.
Read the GitNav guide · Download a VSIX · Report an issue
DotNav provides solution navigation, project operations, builds, run configurations, debugging, and C# formatting for .NET development in VS Code. Installing DotNav also installs GitNav, giving .NET users the complete workspace experience.
Read the DotNav guide · Download a VSIX
| Extension | Use it when you need | Requirements |
|---|---|---|
| GitNav | Visual Git history, comparisons, line history, and guarded Git operations | VS Code and Git |
| DotNav | .NET solution navigation, build, run, debug, project operations, and C# formatting | VS Code and a .NET SDK |
GitNav works independently in any Git repository and does not require .NET or C#. DotNav depends on GitNav and installs it automatically.
extensions/
├── gitnav/ # standalone Git extension
└── dotnav/ # .NET extension
docs/ # engineering and release documentation
Each extension owns its manifest, source, tests, README, changelog, and VSIX packaging configuration. The root npm workspace coordinates builds and tests.
npm install
npm test
npm run package:allGenerated VSIX files are written to dist/. To work on one extension only:
npm run test --workspace extensions/gitnav
npm run test --workspace dotnavGitNav and DotNav are versioned independently with Release Please. Tags use component prefixes such as gitnav-v0.5.2 and dotnav-v0.4.0; each GitHub Release receives the matching VSIX automatically.
See docs/releasing.md for the complete release and Marketplace upload flow.
Both extensions are available under the MIT License. Third-party attributions are listed in THIRD_PARTY_NOTICES.md.