¿Qué tipos de archivos de Visual C ++ deberían comprometerse con el control de versiones?

¿Qué tipos de archivos de Visual Studio \ Visual C ++ deberían comprometerse con el control de versiones?
En mi proyecto tengo los siguientes tipos de archivos:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

Agradecería mucho un breve razonamiento para cada uno. Si alguno de ellos es controvertido, tenga en cuenta. Intencionalmente, incluso los tipos de archivos triviales para completar.

EDITAR

Por un lado, me gustaría ser independiente de la plataforma en el futuro. Por otro lado, en el futuro cercano me gustaría trabajar con miembros del equipo con configuraciones similares. La compatibilidad de carpetas entre las configuraciones es ciertamente una opción, por lo que los archivos de configuración que contienen rutas pueden incluirse si facilita el flujo de trabajo.
De nuevo, seguramente agradecería una explicación de qué es qué.

Respuestas a la pregunta(8)

Su respuesta a la pregunta