Version control

Hi,
i’m relatively new to programming, and would like to implement a “version control” system. I’m not even sure these are the correct words.
Here are my requirements:

  • I need to be able to regularly “save” current state of project files.
  • I need to be able to revert to a previously saved state.
  • I need to branch.
  • The project files will be accessible from several computers, so it would be good, if changes made on files from computerA, would be accessible on computerB. There will be few computers to access, maybe 2 or 3.
  • I need the files to be private: this is not for anyone to access

My development environment is Javascript, with Webstorm as IDE, on mac and windows Pcs.
What system to you suggest that meet my requirements ?

Git

Mercirual

[Git is great but HG is more approachable, especially on windows. Seriously either will work well and both have built-in web storm integration. Setup an account at http://bitbucket.org and you can use either one]

I use Git and private repos on Bitbucket. https://bitbucket.org/

I mostly use Source tree to update my repos, but sometimes I use IntelliJ integrated Git. You have a lot more control and it’s easier to see changes with Source Tree though.