2019: There are no settings in Visual Studio, as discussed in this VSCode issue
In the case of Visual Studio, when there are no staged changes, but some changes, the content of the commit button comes "Commit All". So, user can know all changes will be committed even no changes staged.
The latest 2019 release notes don't show any evolution on that front, so for now, there seems to be no setting in place (like the one in VSCode)
That seems a bug though, considering the documentation:
Git does not automatically add changed files to the snapshot when you create a commit.
You must first stage your changes to let Git know which updates you want to add to the next commit. Staging lets you to selectively add files to a commit while excluding changes made in other files.
However, the same issue 15613 refers to VSCode 1.13 commit b31c1e1, which shows:
if (pick === always) {
config.update('enableSmartCommit', true, true);
} else if (pick !== yes) {
return false; // do not commit on cancel
So, as shown in Aleksandar's answer, enabling smart commit can help.
Only problem: issues 91472 and issues 51721: you need to avoid staging files when a commit is in progress.
Update 2023: issues 51721 is resolved
This has now been addressed as most commands contributed by the git extension are disabled while the commit operation is running.
And so is the commit input field.
For VSCode 1.75 (Jan. 2023), or VSCode insiders today.