Git configuration for CraftCMS
Each project should be a separate repository, definitely. After that - feel free to include what you like. Personally I follow something like this and ignore my /app folder: https://deploybot.com/guides/deploy-craft-cms-to-digitalocean. But you could also include the /app directory and plugins.

Also: Git Workflow and Multi Environment - how to approach

And: https://craftcms.com/support/craft-storage-gitignore