GitNav: Visual Git History & Workflows

GitNav brings clear visual Git history and safer Git workflows directly into Visual Studio Code. Explore how your repository changed, compare code across branches, and run complex Git operations without piecing together multiple views and terminal commands.
GitNav is standalone: it works in any Git repository and does not require .NET or C#.
Install GitNav directly when you only need Git history, comparisons, and guarded branch workflows without the full DotNav .NET workspace experience.
Marketplace releases are produced from the protected release branch after the promotion PR is merged.
Why GitNav?
VS Code's built-in source control handles everyday changes well, but understanding a repository's history or completing a multi-step Git operation often requires switching between the editor, separate views, and the terminal. GitNav provides one visual workspace for both exploration and action.
- Understand history quickly: follow graph lanes across branches, tags, and commits, then inspect the files changed by any commit.
- Compare code in context: compare a file or selected lines with another branch without changing the working tree.
- Use advanced Git workflows with guardrails: run rebase, cherry-pick, revert, reset, stash, and worktree operations with contextual confirmations and protected-branch rules.
What you can do
Explore repository history
- Browse local and remote branches, tags, commits, worktrees, and stashes.
- Read a visual commit graph with paging, filters, repository status, and commit details.
- Inspect changed files and preview historical revisions without checking them out.
- Keep the view current with optional automatic fetch while the panel is active.
Compare and investigate code
- Compare the current file with another branch.
- Compare only the lines selected in the editor.
- Show the commit history for a selected range of code.
- Navigate historical revisions without modifying the working tree.
Run guarded Git operations
- Create, rename, delete, check out, merge, publish, and synchronize branches.
- Create or apply stashes and manage worktrees.
- Cherry-pick, revert, reset, and interactively rebase commits.
- Continue, skip, or abort operations after conflicts.
- Prevent history-rewriting commands on configured protected branches.
Install
Install from the Visual Studio Marketplace, or run:
code --install-extension tuna-ex.gitnav-workflows
You can also download a packaged VSIX from GitHub Releases.
Quick start
- Open a folder containing a Git repository in VS Code.
- Open the bottom Panel and select GitNav.
- Select a branch or commit to inspect its history and changed files.
- Open an item's context menu to see the Git actions available for its current state.
- Open the editor GitNav submenu to inspect file, line, or selection history; compare with a branch or commit; reveal the latest change; or open a read-only revision.
Requirements
- Visual Studio Code 1.92 or newer.
- Git available on
PATH.
- An open folder containing a Git repository.
Safety
GitNav adds guardrails around operations that can rewrite history or discard work:
- Protected branch patterns block history-rewriting actions.
- Destructive operations require explicit confirmation.
- Conflict recovery actions follow the active Git operation.
- Historical revisions and comparisons do not change the working tree.
Always review the displayed repository, branch, commit, and working-tree state before confirming a mutation.
Configuration
Open Settings and search for GitNav.
| Setting |
Purpose |
Default |
gitnav.autoFetch |
Fetch while the Git Log view is active |
true |
gitnav.autoFetchMinutes |
Set the automatic fetch interval |
20 |
gitnav.protectedBranches |
Define branch patterns protected from history rewrites |
main, master, develop, release/* |
gitnav.history.maxCommits |
Limit commits returned by editor history and revision pickers |
50 |
Feedback
Open an issue and include clear reproduction steps, your operating system, VS Code version, Git version, and relevant GitNav output logs.
License
GitNav is available under the MIT License. Third-party attributions are listed in THIRD_PARTY_NOTICES.md.