Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Good Idea GitNew to Visual Studio Code? Get it now.
Good Idea Git

Good Idea Git

HYCX

|
1 install
| (0) | Free
IDEA-style Git management for VS Code: changelists, visual log, shelve/stash, blame annotations, SFTP upload & server diff.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GoodIdeaGit — IDEA-style GoodIdeaGit for VS Code

English | 简中文

Short Description (tagline)

Bring IDEA’s powerful Git workflow to VS Code: changelists, visual log, shelve, blame, SFTP upload, and remote diff — all in one place.

Features show

changelist branches gitlog commitedfiles showdiff1 showdiff2 changelist
### Stop switching between terminals, scattered extensions, and the native SCM panel.

GoodIdeaGit brings the mature, battle-tested Git management experience of IntelliJ IDEA directly into VS Code. Built on top of the official VS Code Git Extension API, it complements — not replaces — your existing Git setup. Whether you’re juggling multiple tasks, investigating history, or syncing files to a remote server, GoodIdeaGit gives you a unified, keyboard-friendly workspace.

Design principle: Like IntelliJ, we run Git porcelain commands and parse their output. We never do anything Git itself wouldn’t do. Your repositories stay 100% compatible with native Git.


✨ Key Features

📋 Changelists — Organize changes by task

Group uncommitted changes into logical lists (e.g., “Feature A”, “Bugfix B”). Switch the active changelist and new edits automatically go there. Drag & drop files between lists, commit a single changelist, or even split changes within the same file into different lists using interactive staging (git add -p).

  • Create, delete, and activate changelists
  • Move files between lists via drag & drop or context menu
  • Commit individual changelists with auto-generated messages
  • Track context: deactivate a changelist and restore it later with its associated task

🌳 Visual Git Log & History Investigation

A rich, interactive commit graph showing branches, merges, and tags.

  • Branches pane: checkout, create, delete, favorite, group by directory, compare with current
  • Commits pane: search by message, hash, author, date, or regex; filter by branch/folder; open results in new tabs
  • Changed Files & Commit Details: inspect diffs, view full file history, compare any two commits
  • Snapshot view: open the entire repository at a specific revision
  • Amend, cherry-pick, rebase, merge directly from the graph

📦 Shelve & Stash — Temporary storage done right

  • Shelve: selectively shelve files or entire changelists. Stored as standard patch files (.patch + metadata) under .vscode/shelves/. Apply multiple times with git apply --3way.
  • Stash: full Git stash support — create, apply, pop, drop, branch from stash, keep-index.
  • Unified view: optionally merge Stash and Shelf into one tab.

👤 Git Blame Annotations

Right-click the gutter → Annotate with Git Blame. See author and date for every line. Hover for full commit details. Right-click to Show Diff against the previous revision. Fully configurable format and keyboard shortcuts.

✅ Commit Dialog with Line-Level Staging

  • File selection grouped by changelist
  • Expand files to cherry-pick individual hunks
  • Commit message history and templates
  • Commit or Commit and Push buttons
  • Pre-commit checks and Amend option

⌨️ VCS Operations Popup

One shortcut (`Alt+``) opens a unified command palette for every Git action: Commit, Push, Pull, Fetch, Merge, Rebase, Cherry-pick, Reset, Revert, Stash/Shelve, Create Branch, Checkout, and more.

🔀 Three-Way Merge Conflict Editor

A dedicated merge view with Local / Result / Remote panels. Navigate conflicts one by one, accept local, remote, or both, and edit the result directly with syntax highlighting and token-level diff.


🆕 File Context Menu with SFTP Upload & Remote Diff

In both the pending changes list and the committed node file list, you can now right-click any file to access:

Action Description
Open Source File Jump directly to the file in the editor.
Upload File Upload the file to your configured SFTP server (one click, no terminal).
Diff with Remote Compare the local file with its counterpart on the SFTP server.

SFTP configuration: Set up your server details in VS Code settings (GoodIdeaGit.sftp.*). Once configured, upload and remote diff work seamlessly from the context menu.

This feature bridges the gap between local Git management and remote deployment — perfect for web developers, DevOps, and anyone who edits files directly on a server.


⚙️ Configuration

Setting Description Default
GoodIdeaGit.sftp.host SFTP server hostname ""
GoodIdeaGit.sftp.port SFTP port 22
GoodIdeaGit.sftp.username SFTP username ""
GoodIdeaGit.sftp.remotePath Base remote path ""
GoodIdeaGit.blame.format Blame annotation format ${author} ${date}
GoodIdeaGit.changelists.autoTrackContext Enable context tracking true
GoodIdeaGit.shelve.location Custom shelve storage path .vscode/shelves

📋 Requirements

  • VS Code 1.80 or newer
  • Git installed and available in PATH
  • Works with Cursor, Windsurf, VSCodium, and other VS Code-based editors
  • Multi-root workspaces supported
  • Does not replace the built-in Git extension — they work side by side

🚀 Getting Started

  1. Install GoodIdeaGit from the Marketplace.
  2. Open a Git repository in VS Code.
  3. Look for the GoodIdeaGit icon in the Bottom Panel.
  4. Manage the changelists, branches, and commit points. Browse the changed files, view commit details, compare differences, or right-click a file to upload it to the server via SFTP.

💬 Feedback & Support

  • Found a bug? Open an issue
  • Love the extension? Leave a ⭐⭐⭐⭐⭐ review — it helps a lot!

This extension is not affiliated with JetBrains or IntelliJ IDEA. “IntelliJ-style” refers to the workflow inspiration only.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft