Git, one of the big known versioning systems, has been in the last couple of years steadily impose itself as the standard solution, slowly overtaking the more traditional SVN.
Github.com has certainly done a great job in providing a stable environment and a community hub where Git could spread. But that alone doesn't explain git's popularity. One particular feature makes Git diffrent from the traditional SVN: it is a distributed system. That might not sound like much, but it's opening the way to more flexibility and ease of use.
However, git can seem a bit hairy to the typical programmer familiarized only to the very basics of versioning systems (skills necessary to work on a project).
I have experimenting a little with git, my purpose being to use git as a fully functional automated production-staging-development workflow.