Git

“Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.” Git

You may create a .gitignore file (and add it in the repository) that contains filename patterns (globs) if you don’t want to see some files in git status; this is useful for eg. objects or other files your build process generates but you don’t want versioned.