Хорошее эмпирическое правило - включать только то, что вы не можете легко восстановить. Таким образом, исходный код, очевидно, отвечает этой роли, как и ресурсы, такие как изображения, звуки и другие необходимые вам данные. Объекты и фактический двоичный файл, который вы генерируете из исходного кода, обычно легко получить снова, и обычно не нужно вводить.
Что касается файла sln, если вы будете вносить изменения в файл sln, и именно так другие будут строить проект, то вы, вероятно, захотите включить это. Если вы генерируете файл sln из какого-то другого процесса (например, скрипт генерирует sln, а затем строит его из этого), то, вероятно, будет хорошей идеей не указывать это.