Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Commit DropNew to Visual Studio Code? Get it now.
Commit Drop

Commit Drop

Paco

|
6 installs
| (0) | Free
Export the files changed in any git commit into a ready-to-upload folder that mirrors your project structure.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Commit Drop

Pick a commit, get a folder you can upload.

Commit Drop takes any commit in your repository and writes the files it touched into a single folder that mirrors your project's structure — ready to drag onto an FTP client, rsync, or a shared drive. No build step, no full-repo upload, no hand-copying files while cross-referencing a diff.

Why

Plenty of projects still deploy by uploading changed files. Working out which files a fix touched — and rebuilding the folder tree by hand — is slow and easy to get wrong. Commit Drop does it in one click, straight from your commit history.

Getting started

  1. Install the extension and open a folder that is a git repository
  2. Click the Commit Drop icon in the Activity Bar
  3. Hover a commit in the Commits view and click the Export button

A deploy/ folder appears at your repository root containing exactly that commit's files, in their original folder structure. Upload it.

The sidebar

Commits

Your recent commits, newest first — with anything you have not committed yet sitting above them.

Row What it holds
Staged Changes Everything in the index — what a commit would contain right now
Unstaged Changes Working tree edits you have not staged, plus untracked files
A commit The files that commit touched

The two pending rows appear only when they are non-empty, and they carry the same buttons as a commit, so a hotfix can go out before it is committed.

Action Result
Export Empties the deploy folder, then writes that row's files
Add Merges that row's files into whatever is already staged
Expand a row Shows every file in it
+ on a single file Adds just that one file

Staged files are read from the index and unstaged files straight off disk, so what lands in the deploy folder is exactly what the row shows.

Deleted files are listed with a trash icon and have no + button — they cannot be exported, because the file is gone. The manifest records them so you know what to delete on the target.

Use Export for the first row and Add for the rest to bundle a multi-commit release into one upload.

Deploy Folder

A live view of what is currently staged. Click any file to open it and check it before shipping. The title bar has buttons to reveal the folder in Finder/Explorer, refresh, and clear it.

Using it with Git Graph

Git Graph renders its commit menu inside a webview, so no extension can add entries to it. Commit Drop bridges the gap through the clipboard:

  1. In Git Graph, right-click a commit → Copy Commit Hash to Clipboard
  2. Press Ctrl+Alt+D (Cmd+Alt+D on macOS)

The same works from any source that gives you a hash — a terminal, a pull request, a chat message.

Commands

All available from the Command Palette under the Commit Drop category.

Command Description
Export Files to Deploy Folder Choose a commit or pending set, replace the folder contents
Add Files to Deploy Folder (keep existing) Choose a commit or pending set, merge into the folder
Export Commit Files from Clipboard Hash Use the hash on the clipboard
Reveal Deploy Folder Show the folder in the OS file manager
Clear Deploy Folder Empty the folder, after a confirmation prompt
Switch Repository Choose which repository the views follow — only listed when the workspace contains more than one repository

The first two open a picker listing Staged Changes and Unstaged Changes (when they have files) above your recent commits.

Settings

Setting Default Description
commitDrop.outputFolder deploy Output folder, relative to the repository root
commitDrop.clearOutputFolder true Empty the folder before an Export
commitDrop.writeManifest true Write _deploy-manifest.txt alongside the files
commitDrop.addOutputFolderToGitignore true Keep the output folder out of git
commitDrop.revealAfterExport true Reveal the folder when an export finishes
commitDrop.commitPickerLimit 200 How many commits to list

The manifest

Unless you turn it off, each export appends to _deploy-manifest.txt:

commit 9f3c1ab7e4d20c8b5a6f3e1d9c7b2a4e6f8d0c1b
author Paco (2 hours ago)
subject Fix checkout total rounding
exported 2026-08-13T04:58:16.612Z

M  app/Services/CartService.php
A  app/Support/Money.php
D  app/Legacy/PriceHelper.php  -- deleted in this commit, not exported

This matters for deleted files: they cannot be exported, so the manifest is your record of what to remove on the target.

Exports of pending work are headed staged changes (not committed) or unstaged working tree changes (not committed) instead of a commit line.

Details worth knowing

  • Merge commits are diffed against their first parent, matching what commit graphs display
  • Binary files are copied byte for byte
  • Renames appear as the new path — the old file shows as deleted in the manifest
  • Untracked files follow .gitignore, so ignored build output never gets exported
  • Setting commitDrop.clearOutputFolder to false makes Export behave like Add
  • The output folder is added to .gitignore the first time it is created
  • Nothing is ever pushed, pulled, committed, or written to your working tree; the extension only reads

Requirements

  • git available on your PATH, or the built-in Git extension enabled
  • VS Code 1.90 or newer

Release notes

See CHANGELOG.md.

License

MIT

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