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

GitCanvas

Mohammad Joynul Abedin

|
15 installs
| (1) | Free
A visual Git client dashboard for VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitCanvas

GitCanvas is a visual Git dashboard for VS Code. It turns repository status, branch history, commit details, stashes, remotes, and common Git actions into one focused workspace.

Dashboard Preview

GitCanvas visual commit graph with branch lanes, commit details, changed files, and Git command actions

Use it when you want quick answers to questions like:

  • What changed in my working tree?
  • Which commits are on this branch?
  • How are my local and remote branches related?
  • What files changed in a selected commit?
  • Can I create, checkout, stash, commit, pull, or push without leaving VS Code?
  • Is a destructive Git action protected by a safety prompt?

Highlights

  • Visual commit graph with branch lanes, merge connectors, branch labels, zoom controls, and current-branch centering.
  • A dedicated History panel docked next to your Terminal and Output panels, with its own horizontal commit graph, searchable commit list, and a resizable details pane — so history and status stay visible without leaving your editor layout.
  • Rich, keyboard-accessible commit tooltips: hover a commit for author, time, stats, and full message, with one click through to the commit, the author's other commits, or the commit on GitHub/GitLab/Bitbucket.
  • Click any changed file to open it in VS Code's native diff editor, in place, no separate viewer.
  • Changes dashboard for staged, modified, deleted, and untracked files, with per-file and per-folder checkboxes and live +/- line counts.
  • Partial (hunk-level) staging — stage or unstage individual hunks of a file, not just the whole file.
  • Inline diff previews for working tree files, commits, and stashes.
  • Commit list with search by message, author, or hash.
  • Commit inspector with changed files, metadata, branch labels, and actions such as cherry-pick, revert, branch, tag, checkout, copy SHA, and reset.
  • Branches view for local branches and remote branches in one place, with create and checkout actions.
  • Stash management with select, apply, pop, drop, preview diff, and restore-as-commit workflows.
  • Visual GitHub Pull Request creation and browsing, signed in through VS Code's own GitHub account, no separate token setup.
  • A Settings tab for tuning auto-refresh, backup ref retention, diff context size, and the AI commit-message style, alongside VS Code's native settings.
  • Repository picker for multi-root VS Code workspaces.
  • Fetch, pull, and push controls in the dashboard toolbar, with ahead/behind indicators.
  • GitHub Copilot-powered commit message and PR description generation when VS Code language models are available, with an optional custom style/format.
  • Safety prompts for risky operations, including clean-tree checks, automatic stashing, backup refs before supported history rewrites, and force-push with lease.

Core Views

Changes and Commit Writing

Review your working tree, stage or discard individual files, write a commit message, or generate one with Copilot.

GitCanvas changes view with commit message input, Copilot generation, modified files, stage controls, and diff preview

Commit Search

Search the repository history and select a commit to inspect its metadata, branch labels, changed files, and available actions.

GitCanvas commits view with searchable commit history and selected commit row

Branches and Remotes

See the current branch, create new branches, checkout local branches, and inspect remote tracking branches without a separate remotes tab.

GitCanvas branches view showing local branches, remote branches, current branch state, and checkout actions

Stashes

Preview stash diffs, apply or pop a stash, drop old stash entries, or restore selected stash entries as commits.

GitCanvas stashes view with stash selection, apply pop drop actions, and a diff preview

History Panel

A second, always-available view of your repository lives in VS Code's bottom panel group, next to Terminal and Output — pull it up without leaving whatever file you're editing. It has its own horizontal commit graph, a searchable commit list, and a resizable inspector pane on the right.

GitCanvas History panel docked in VS Code's bottom panel, showing the commit graph, commit list, and Working Changes inspector with per-file staging checkboxes

Select any commit to see its full message, stats, and changed files as a real folder tree — click a file to open it in VS Code's native diff editor.

GitCanvas History panel showing a selected commit's details, stats, and a Files Changed folder tree

Hovering a commit shows a rich, clickable tooltip — the author's name filters the commit list, the hash jumps straight to that commit, and "View on remote" opens it on GitHub, GitLab, or Bitbucket.

GitCanvas commit hover tooltip with author, time, stats, message, and a View on remote link

Common Workflow

  1. Open a Git repository in VS Code.
  2. Click the GitCanvas icon in the VS Code Activity Bar, or run GitCanvas: Open.
  3. Select a repository from the picker if the workspace has more than one Git repo.
  4. Review the Changes tab, stage files, and write or generate a commit message.
  5. Use Graph, Commits, Branches, Stashes, and Pull Requests to inspect history and manage branch work.
  6. Use Fetch, Pull, and Push from the toolbar when you are ready to sync.
  7. Open the GitCanvas panel next to Terminal and Output for an always-visible commit graph and file staging alongside whatever you're editing.

Git Operations

Area What GitCanvas helps with
Working tree Stage, unstage, discard, inspect diffs, commit, amend, and stash changes.
History Search commits, inspect changed files, preview diffs, copy SHAs, tag commits, and create branches from commits.
Branches Create branches, checkout branches, see local branches, and see remote tracking branches.
Stashes Apply, pop, drop, preview, select, and restore stash entries as commits.
Remotes Fetch, pull, push, and view remote branches inside the Branches view.
Safety Guard checkout, reset, revert, cherry-pick, merge, drop, and force-push style workflows with prompts and backup behavior where supported.

Copilot Commit Messages

GitCanvas can ask VS Code's available language model provider to draft a commit message from the selected Git context. This is optional and only runs when you press Generate.

If no compatible Copilot or language model provider is available, you can still write and commit manually.

Safety and Git Behavior

GitCanvas runs Git through argument-array execution rather than shell-interpolated command strings. Branch names, refs, file paths, tags, and commit hashes are validated before they are passed into Git command entry points.

Destructive or history-changing workflows are guarded with repository-state checks. Supported reset and history rewrite paths create backup refs under refs/gitcanvas-backup/ before moving HEAD. Force pushes use --force-with-lease, not bare --force.

Branch parentage in the visual graph is inferred because Git does not store "created from branch" metadata directly. GitCanvas uses reflog hints, branch-name matching, and merge-base distance to produce a practical visual layout.

Privacy and Storage

GitCanvas is local-first.

  • It reads repository information through your local Git installation.
  • It does not require a hosted account or external GitCanvas service.
  • It does not write analytics files into your project.
  • Copilot-powered commit message and PR description generation may send selected diff and commit context to the VS Code language model provider only when you explicitly use a generation action.
  • Pull Request features authenticate through VS Code's built-in GitHub sign-in; GitCanvas never handles or stores your GitHub credentials directly.

Requirements

  • VS Code 1.92.0 or newer.
  • Git installed and available on your machine.
  • A Git repository opened in VS Code.
  • GitHub Copilot or another VS Code language model provider is optional and only needed for generated commit messages.

Commands

Command Purpose
GitCanvas: Open Opens the GitCanvas dashboard.
GitCanvas: Refresh Reloads repository status and history.
GitCanvas: Commit Commits staged changes from GitCanvas.
GitCanvas: Stage File Stages a file.
GitCanvas: Unstage File Unstages a file.
GitCanvas: Discard File Discards a file change after confirmation.
GitCanvas: Create Branch Creates a new branch.
GitCanvas: Checkout Branch Checks out a branch with safety handling.
GitCanvas: Fetch Fetches from the configured remote.
GitCanvas: Pull Pulls the current branch.
GitCanvas: Push Pushes the current branch.

Getting Started

  1. Install GitCanvas.
  2. Open a folder that contains a Git repository.
  3. Click the GitCanvas icon in the VS Code Activity Bar, or run GitCanvas: Open from the Command Palette.
  4. Use the dashboard tabs to move between Changes, Graph, Commits, Branches, Stashes, Pull Requests, and Settings.
  5. Or open the GitCanvas view in the bottom panel (next to Terminal and Output) for the same history and staging tools alongside your editor.

Support and Contact

GitCanvas is developed and maintained by Mohammad Joynul Abedin (Shokal).

  • Report a bug or request a feature: joynulabedin.dev@gmail.com
  • Developer profile: Joynul-Abedin on GitHub
  • VS Code Marketplace: GitCanvas
  • Open VSX Registry: GitCanvas
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft