Hi MANEL69,
Your . gitignore file contains what it does for good reason. Firstly it keeps your project small so it's quick to deploy. Your git repo is set using this to not include your vendor folder, as everything in your vendor folder is already on a git repo, it does not make sense to duplicate code, it also allows you to make sure the packages you've pulled in are up to date (security fixes etc).
Secondly, for security it does not include your .env file, this is to prevent passwords getting stored in version control. As you have access to the server you are deploying on you can copy your .env file, or create a production version manually, once it's in place it won't get overwritten as git will not touch it.
Your vendor folder is easy to sort, you will need to ensure that composer is installed on the server you are deploying to, simply run the following from the root of your project.
composer install
This will install all of the missing dependencies within your vendor folder.
A typical workflow pulling down a project would be to do a git clone of the project, set the permissions and then run composer install, followed by manually setting up your .env file.
Neil