Vendor directory vs. Modules directory. What are the key differences? I've seen articles that instruct developers to add docroot/vendor to the .gitignore but if I require a module with composer and push up that module, will that cause a huge error on the site I'm pushing up to? 

Does my composer.json file have to include all of the modules in my modules directory? 

If I were to copy and paste the composer.json file into another install and run composer install would that automatically give me all of the dependencies I need?

As you can tell, I'm pretty new to Drupal 8. The team I work with uses Acquia and I'm finding a ton of issues when trying come up with a good workflow using compser, drush, git, and config management. 

Thanks
[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.