It also probably depends on what development tools people use. If everyone on the project uses a different IDE that's different patterns for each of them, but they all have to be in the ignore file.
Well, that is what a global gitignore file [1] is all about. Entries specific for your working environment (IDE-files) should be defined in your global gitignore, while everything project-specific (object files, build-directory etc.) should be in the project-gitignore.