I'm fairly new to programming and web dev and up until now I haven't worked on any projects that I felt were large enough to warrant using proper version control. However, I am now working on a project that is getting bigger and bigger (very exciting!). I think it would be prudent to use some kind of version control. At the moment I work alone, but if this project gets where I want it to then I expect at some point I am going to need (and want!) some other people to come on board. My problem is because I've never used version control, I don't really know what it is, how it works etc etc.
I hope this question isn't classed as subjective. I'm not asking for people to tell me which version control they think is best, I'm quite happy to spend some time looking around and trying them out for myself.
I'm really wanting some people to either give me a quick run down of how a standard version control system works (I know they'll all be different, but I'm talking basics here) and if possible, in a non-subjective way, to explain the differences between some of the major players. ie what is the difference between mercurial and git, not which is better - I'll decide that for myself thank you!