Nifty Changelists
Group uncommitted files into named changelists and commit each one separately, like JetBrains IDEs, and reword old commit messages without an interactive rebase.
Maintained. No sign-in. No telemetry. Works in VS Code, Cursor, Windsurf, VSCodium and other editors that use Open VSX.
Features


- Changelists, like in JetBrains IDEs. A Changelists section in the Source Control view groups your uncommitted files into named lists, for example "Refactoring", "Bug #412" and "Debug logging, don't commit". New changes land in the active list, and a file stays in its list until you move it or commit it. Each file shows its status as a letter in Git's colours, as in the built-in Git section: M modified, A added, D deleted, R renamed, U untracked, C conflict.
- Commit one list at a time. The ✓ button on a list commits exactly its files: modified, new, deleted or renamed. Everything else stays as it is, whatever is staged. Type the message in the Source Control box and press Ctrl+Enter to commit the active list.
- Move files between lists from the inline button or the right-click menu, and select several files at once. You can also create a new list on the way.
- Reword old commit messages. Reword Commit Message… lets you pick any earlier commit on the branch and edit its message. There's no interactive rebase: the commits are recreated with identical content, so there can be no conflicts and your working tree isn't touched. You're warned if the commit was already pushed.
- Works alongside VS Code's own Git view, using the same repository.
Commands
| Command |
What it does |
Nifty Changelists: New Changelist… |
Add a list |
Nifty Changelists: Set as Active Changelist |
New changes go to this list |
Nifty Changelists: Move to Changelist… |
Move the selected files |
Nifty Changelists: Commit Changelist |
Commit one list's files |
Nifty Changelists: Commit Active Changelist |
Commit the active list (Ctrl+Enter in the message box) |
Nifty Changelists: Rename Changelist… / Delete Changelist |
Manage lists (a deleted list's files go to the active one) |
Nifty Changelists: Reword Commit Message… |
Change the message of an earlier commit |
Changelists are kept per workspace. Needs git 2.25 or later.
Install
- VS Code: search for "Nifty Changelists" in the Extensions view, or install from the Visual Studio Marketplace.
- Cursor, Windsurf, VSCodium, Kiro, Antigravity: install from Open VSX.
Privacy
This extension collects no telemetry and needs no account.
- Nifty SVN: Subversion Source Control: Subversion in the Source Control view: changes, changelists, diffs, commit, update, blame and branches, in VS Code, Cursor and more. (Open VSX)
- Nifty Branches: Clean Up Merged Git Branches: Safely clean up merged, squash-merged, gone and stale git branches, with a preview and one-click restore. (Open VSX)
- Nifty Git Graph: Git History & Branch Graph: See your git history as a graph: branches, merges and tags, commit details and diffs, and checkout, merge, rebase, cherry-pick and more from a right-click. No sign-in. (Open VSX)
- Nifty Git Links: Open in GitHub, GitLab & Bitbucket: Open or copy links to files, lines, commits and pull requests on GitHub, GitLab, Bitbucket, Azure DevOps and Gitea. (Open VSX)
- Nifty Git: Git Client, Graph, Rebase & Worktrees: 14-day free trial, then $39 once. A Git client in VS Code: commit graph, drag-and-drop merge and rebase, interactive rebase, undo, worktrees. No account. (Open VSX)
- Nifty Pre-commit: Git Hooks with Your venv: Make pre-commit and other git hooks use your Python virtual environment when you commit from the Source Control view, plus run and install pre-commit. (Open VSX)
See all 100+ Nifty extensions and web tools at https://getnifty.dev
| |