Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitNovaNew to Visual Studio Code? Get it now.
GitNova

GitNova

sitharaj

|
11 installs
| (1) | Free
Visualise and manage your Git workflow with a rhythm. The heartbeat of your codebase.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitNova - Enterprise Git Integration for VS Code

GitNova Logo

Visualize and manage your Git workflow with a rhythm. The heartbeat of your codebase.

Features • Enterprise Features • Installation • Configuration • Commands


A comprehensive, enterprise-grade Git plugin for Visual Studio Code that provides advanced git operations through an intuitive, performant, and modern user interface. Built for teams that demand reliability, observability, and professional-grade tooling.

Features

Core Git Operations

  • Branch Management: Create, delete, rename, switch, and compare branches with ease
  • Commit History: View and search commit history with detailed information
  • Diff Viewer: Side-by-side and unified diff views with syntax highlighting
  • Stash Management: Create, apply, pop, and drop stashes
  • Interactive Rebase: Drag-and-drop commit reordering with conflict resolution
  • Merge Conflict Resolution: Side-by-side conflict view with merge strategies
  • Remote Operations: Fetch, pull, push, and manage remotes
  • Tag Management: Create, delete, and push tags
  • Status Bar Integration: Quick access to branch, status, and sync information
  • Tree Views: Native VSCode tree views for branches, commits, stashes, remotes, and tags

Enterprise Features

🔒 Branch Protection

Protect critical branches from accidental changes:

  • Configurable protected branch patterns (main, master, develop, release/, hotfix/)
  • Warning prompts before operations on protected branches
  • Admin override capability for authorized users
  • Branch naming convention enforcement

📝 Commit Templates

Streamline your commit workflow with templates:

  • Pre-configured conventional commit templates
  • Custom template creation and management
  • Interactive commit message wizard
  • Placeholder system for dynamic content
  • Breaking change support

👥 Git Blame

Inline blame annotations for code authorship:

  • Line-by-line blame information
  • Hover details with commit info
  • Recent commit highlighting
  • Configurable date formats (relative, short, full)
  • Toggle inline blame on/off

🌳 Worktree Management

Parallel development with Git worktrees:

  • List, create, and remove worktrees
  • Open worktrees in new VS Code windows
  • Lock/unlock worktrees
  • Move worktrees to new locations
  • Status bar integration

📦 Submodule Support

Enterprise-grade submodule management:

  • Initialize submodules recursively
  • Update submodules with various strategies
  • Add new submodules with branch tracking
  • Remove submodules cleanly
  • Sync submodule URLs
  • Status tracking and notifications

📁 Git LFS Support

Large File Storage for enterprise workflows:

  • Install and configure Git LFS
  • Track/untrack file patterns
  • Pull LFS objects with progress
  • Prune old LFS objects
  • Storage statistics and status

📊 Performance Monitoring

Enterprise observability features:

  • Operation timing metrics
  • Cache hit/miss statistics
  • Slow operation warnings
  • Performance reports

🔍 Enhanced Logging

Professional-grade logging:

  • VS Code Output Channel integration
  • Configurable log levels (trace, debug, info, warn, error)
  • Performance timing utilities
  • Log rotation support

📈 Telemetry

Usage analytics (respects VS Code settings):

  • Command usage tracking
  • Feature adoption metrics
  • Error tracking
  • Performance analytics

🛡️ Error Handling

Robust error management:

  • Centralized error handling
  • Error classification and categorization
  • Recovery strategies
  • User-friendly error messages
  • Retry mechanisms

Premium Features

Interactive Git Graph

Visualize your entire repository history with a native SVG-based branch graph:

  • Branch lanes with color-coded commit paths
  • Click any commit for details, right-click for actions (cherry-pick, revert, create branch)
  • Search and filter by message, author, or SHA
  • Pagination for large repositories

File History & Revision Navigation

  • File History tree view in the sidebar showing all commits for the active file
  • Line History (Ctrl+Alt+H): Select lines to see how they evolved across commits
  • Revision Navigation: Step through file revisions with Alt+[ and Alt+]

Commit Details Panel

Rich webview showing full commit info, file tree with status icons, stats bar, and action buttons (cherry-pick, revert, checkout, copy SHA).

Search & Compare

  • Search commits by message, author, or file content (pickaxe)
  • Compare any two branches, tags, or commits side by side with a file diff list

Interactive Rebase UI

Drag-and-drop commit reordering with per-commit action dropdowns (pick, reword, edit, squash, fixup, drop) and a preview panel.

Merge Conflict Resolution UI

3-panel merge editor (Ours / Result / Theirs) with per-block Accept Current, Accept Incoming, and Accept Both actions.

Multi-Repository Support

  • Auto-discovers all Git repositories in workspace folders
  • Auto-switches active repo based on which file you're editing
  • Repository picker (GitNova: Switch Repository) for manual switching
  • Status bar shows repo name when multiple repos are open

Auto-Fetch with Notifications

Periodic background fetch with configurable interval. Notifies you when new remote commits are available with Pull and View actions.

Statistics Dashboard

  • Contributors tab: commit counts, rankings
  • Activity tab: commit frequency data
  • Code tab: language breakdown, most-modified files

Gutter Change Indicators

Color-coded indicators in the editor gutter: green for added lines, blue for modified, red for deleted. Updates in real-time as you type.

CodeLens Blame

See the last author and commit message above every function and class, powered by CodeLens.

Enhanced Branch Quick Picks

Branch picker with "Recent", "Local Branches", and "Remote Branches" sections, ahead/behind badges, and codicon icons.

Welcome Walkthrough

6-step onboarding guide that opens on first install, covering the sidebar, commits, branches, git graph, blame, and stash.

Technology Stack

  • TypeScript 5.x - Type-safe development
  • VSCode Extension API - Native integration with VSCode
  • Simple-git 3.x - Git operations wrapper
  • React 18.x - Modern UI components for webviews
  • Zustand 4.x - Lightweight state management
  • esbuild - Fast bundling and compilation

Installation

From VSCode Marketplace

Search for GitNova in the VS Code Extensions sidebar, or visit the Marketplace page.

From Source

  1. Clone the repository:
git clone https://github.com/sitharaj88/git-nova.git
cd git-nova
  1. Install dependencies:
npm install
  1. Build the extension:
npm run compile
  1. Run in development mode:
npm run watch
  1. Press F5 in VSCode to launch the Extension Development Host

Commands

Branch Commands

Command Description
GitNova: Create Branch Create a new branch
GitNova: Delete Branch Delete a branch
GitNova: Switch Branch Switch to another branch
GitNova: Rename Branch Rename the current branch
GitNova: Merge Branch Merge a branch into current
GitNova: Compare Branches Compare two branches

Commit Commands

Command Description
GitNova: Create Commit Create a new commit
GitNova: View Commit History View commit history
GitNova: Insert Commit Template Use a commit template
GitNova: Commit Template Wizard Interactive template wizard

Stash Commands

Command Description
GitNova: Create Stash Create a new stash
GitNova: Apply Stash Apply a stash
GitNova: Pop Stash Pop a stash
GitNova: Drop Stash Delete a stash

Enterprise Commands

Command Description
GitNova: Toggle Inline Blame Toggle inline blame annotations
GitNova: Show File Blame Show blame for current file
GitNova: List Worktrees List all worktrees
GitNova: Create Worktree Create a new worktree
GitNova: Initialize Submodules Initialize all submodules
GitNova: Update Submodules Update all submodules
GitNova: Add Submodule Add a new submodule
GitNova: Install Git LFS Install LFS in repository
GitNova: Track Files with LFS Track file patterns with LFS
GitNova: Show Logs Open GitNova log output
GitNova: Show Performance Report View performance metrics

Premium Commands

Command Description
GitNova: Open Git Graph Open the interactive git graph
GitNova: Show File History Show commit history for the active file
GitNova: Show Line History Show history for selected lines
GitNova: Previous Revision Navigate to previous file revision
GitNova: Next Revision Navigate to next file revision
GitNova: Pick Revision Pick a specific file revision
GitNova: Toggle Gutter Indicators Toggle gutter change indicators
GitNova: Toggle CodeLens Toggle CodeLens blame annotations
GitNova: Search & Compare Open search and compare panel
GitNova: Show Commit Detail Show detailed commit info
GitNova: Interactive Rebase Open interactive rebase UI
GitNova: Resolve Merge Conflicts Open merge conflict resolution UI
GitNova: Show Repository Statistics Open statistics dashboard
GitNova: Switch Repository Switch active repository (multi-repo)

Keyboard Shortcuts

Shortcut Command
Ctrl+Alt+B / Cmd+Alt+B Toggle Inline Blame
Alt+[ Previous File Revision
Alt+] Next File Revision
Ctrl+Alt+H / Cmd+Alt+H Show Line History
Ctrl+Alt+T / Cmd+Alt+T Insert Commit Template
Ctrl+Alt+W / Cmd+Alt+W List Worktrees
Ctrl+Alt+L / Cmd+Alt+L Show Logs

Configuration

The extension can be configured through VSCode settings:

General Settings

{
  "gitNova.autoRefresh": true,
  "gitNova.refreshInterval": 60000,
  "gitNova.showStatusBar": true,
  "gitNova.defaultBranchName": "main",
  "gitNova.showRemoteBranches": true,
  "gitNova.branchSortOrder": "recent"
}

Diff Settings

{
  "gitNova.diffViewMode": "unified",
  "gitNova.ignoreWhitespace": false,
  "gitNova.showLineNumbers": true
}

Branch Protection

{
  "gitNova.branchProtection.enabled": true,
  "gitNova.branchProtection.protectedPatterns": [
    "main", "master", "develop", "release/*", "hotfix/*"
  ],
  "gitNova.branchProtection.requirePullRequest": true
}

Branch Naming Conventions

{
  "gitNova.branchNaming.enabled": true,
  "gitNova.branchNaming.pattern": "^(feature|bugfix|hotfix|release|chore)/[a-z0-9-]+$",
  "gitNova.branchNaming.prefixes": [
    "feature/", "bugfix/", "hotfix/", "release/", "chore/"
  ],
  "gitNova.branchNaming.requireTicketNumber": false
}

Commit Message Settings

{
  "gitNova.commitMessage.maxSubjectLength": 72,
  "gitNova.commitMessage.requireType": false,
  "gitNova.commitMessage.allowedTypes": [
    "feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"
  ]
}

Blame Settings

{
  "gitNova.blame.enabled": true,
  "gitNova.blame.dateFormat": "relative",
  "gitNova.blame.highlightRecent": true,
  "gitNova.blame.recentDays": 7
}

Performance Settings

{
  "gitNova.performance.enableMetrics": true,
  "gitNova.performance.slowOperationThreshold": 3000,
  "gitNova.performance.showCacheStats": false
}

Logging Settings

{
  "gitNova.logging.level": "info",
  "gitNova.logging.includeTimestamp": true
}

Project Structure

git-nova/
├── src/                    # Main source code
│   ├── commands/          # Command handlers
│   ├── core/              # Core services (GitService, RepositoryManager, EventBus)
│   ├── models/            # Data models and interfaces
│   ├── providers/         # Tree data providers
│   ├── services/          # Enterprise services
│   │   ├── telemetryService.ts
│   │   ├── errorHandler.ts
│   │   ├── performanceMonitor.ts
│   │   ├── workspaceStateManager.ts
│   │   ├── branchProtectionManager.ts
│   │   ├── commitTemplateManager.ts
│   │   ├── worktreeManager.ts
│   │   ├── gitBlameService.ts
│   │   ├── submoduleManager.ts
│   │   └── lfsManager.ts
│   ├── views/             # Webview panel managers
│   └── utils/             # Utility functions
├── webviews/              # React webview source
├── test/                  # Test files
│   └── unit/             # Unit tests
└── resources/             # Icons and schemas

Architecture

The plugin follows a layered architecture with event-driven communication:

  1. Presentation Layer: Tree views, webviews, and status bar
  2. Command Layer: Command handlers for user actions
  3. Service Layer: GitService, RepositoryManager, EventBus, and Enterprise Services
  4. Data Layer: Models, interfaces, and cache

Enterprise Service Architecture

┌─────────────────────────────────────────────────────────────┐
│                     Extension Entry                          │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │   Logger    │  │  Telemetry  │  │   Error     │         │
│  │             │  │   Service   │  │  Handler    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │ Performance │  │  Workspace  │  │   Branch    │         │
│  │   Monitor   │  │   State     │  │ Protection  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │   Commit    │  │  Worktree   │  │  Git Blame  │         │
│  │  Templates  │  │   Manager   │  │   Service   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐                          │
│  │  Submodule  │  │    LFS      │                          │
│  │   Manager   │  │   Manager   │                          │
│  └─────────────┘  └─────────────┘                          │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Available Scripts

  • npm run compile - Build the extension
  • npm run watch - Build and watch for changes
  • npm run lint - Run ESLint
  • npm run lint:fix - Fix ESLint issues
  • npm run test - Run tests
  • npm run package - Package the extension for distribution

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes using conventional commits (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Commit Message Guidelines

We follow Conventional Commits:

  • feat: - New features
  • fix: - Bug fixes
  • docs: - Documentation changes
  • style: - Code style changes (formatting, etc.)
  • refactor: - Code refactoring
  • perf: - Performance improvements
  • test: - Test additions or modifications
  • build: - Build system changes
  • ci: - CI configuration changes
  • chore: - Other changes

License

Apache-2.0 License - see LICENSE file for details

Support

  • Report Issues
  • Request Features

Made with ❤️ for developers who love Git

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft