For those how use git Source Code Management for .NET/ASP.NET solutions there is a start-up routine to add irrelevant files and folders to ignore list. Just to make life easier I tried to create my own list based on common needs.
First, we usually don't need bin and obj folder since we are interested in sources only; Visual Studio and Resharper files: *.suo, *.user, *cache, _ReSharper*. If you use NuGet and NuGet Package Restore you are probably not interested in packages folder.
Another very controversial issue is to ignore upgrade and backup files after solution migration, but usually I don't need them as well :-): UpgradeLog.XML, _UpgradeReport_Files, Backup.
Great TDD tools like NCrunch and NSubstitute could help you a lot, but *.ncrunchproject, *.ncrunchsolution, *NSubstitute* files might be ignored.
Finally, my .gitignore:
bin/ obj/ packages/ *.suo *.user *cache _ReSharper* *NSubstitute* *.ncrunchproject *.ncrunchsolution UpgradeLog.XML _UpgradeReport_Files Backup
Obviously the list is not generic and could not be recommended for all projects, but at least it is useful for small and medium open-source solutions to keep sources clean and size-optimized.