Vendor directory vs. Modules directory. What are the key differences?
[Assuming you are using composer in this answer]

The vendor directory contains non-Drupal dependencies that core and/or contributes modules require.  This is typically fully managed by composer.

The modules directory contains your Drupal modules.  It can be managed by composer if you are using drupal-composer/drupal-project or something similar where the install paths can be set.

Committing composer managed dependencies or now, like vendor or modules (if you are doing so), is a nuanced subject.  There is no 100% correct answer.

I tend to not commit, even when I am not using a full CI deployment, because the composer dev dependencies should not be deployed on a production server.  So, on the live server I want do do a composer install --no-dev.