Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.87.0 OS Version: Windows 10 Steps to Reproduce: a empty repository using the "source control" tab (with git) a file, add it to stage and commit with any message a clean working tree, verify that the command works ok (it opens COMMIT_EDITMSG editor) make any modification in the repository (e.g. modify a line in the created file) command does not works properly anymore, it shows the message below: ! Which is the warning message used when running the command alone (not amend)
The dialog from the screenshot is related to "smart commit" and it is being shown for all variations of the "Commit" operation (ex: Commit, Commit (Amend)). In the case that you have described, you might want to amend your last commit with the changes from the working tree, and since you have the setting enabled, we will show the dialog.
I just tested again setting Now, the command does nothing, when the working tree is not clean. By cleaning the working tree, works ok again (it opens COMMIT_EDITMSG editor). Is this the correct behaviour? OBS: running on the terminal works as usual in git (it opens the editor).
/gifPlease
Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, files are preferred as they are displayed inline on GitHub. You may find helpful as a browser-based gif recording tool. If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording ( in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue. Happy coding!
Here are the gifs. The command works when the working tree is clean, but does not work when the working tree is not clean. ! The command does nothing at all when the working tree is not clean. !
could you please download the latest VS Code Insiders release as I have pushed a fix for this. Thanks!
It is working. Thanks!
please note that during our testing we have discovered a regression that was introduced by the fix for this issue. Given that we are shutting down for the release we have decided to revert the fix, so that we can do more testing. I will revisit the fix next week.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
/verified

Discussion:
} // no changes, and the user has not configured to commit all in this case <del> if (!noUnstagedChanges && noStagedChanges && !enableSmartCommit && !opts.all) { </del> <ins> if (!noUnstagedChanges && noStagedChanges && !enableSmartCommit && !opts.all && !opts.amend) { </ins> const suggestSmartCommit = config.get<boolean>('suggestSmartCommit') === true; if (!suggestSmartCommit) {

} } <del> if (opts.all === undefined) { </del> <ins> // smart commit if (enableSmartCommit && !opts.all) { </ins> opts = { ...opts, all: noStagedChanges }; <del> } else if (!opts.all && noStagedChanges) { opts = { ...opts, all: true }; </del> } }