Linus Torvalds, the father of Linux, designed and implemented the first version of Git (almost over a weekend,
in pure-hacker style) to give his kernel developers an alternative to BitKeeper. Linus not only did the
original design (simple, clean, genius), but helped promote the project with his unique style. (More
During his famous speech, he heavily criticized (ok, insulted) CVS, SVN, and Perforce: "Subversion has been
the most pointless project ever started", "If you like using CVS, you should be in some kind of mental
institution or somewhere else" and finally "Get rid of Perforce, it is sad, but it is so, so true".
You can love him or hate him, but he made his point. The Middle Ages were over and now distributed systems
were to rule the world, including removing the arcane fear of branching and merging, a key concept behind
During the next few years, every major open-source project migrated away from Subversion towards Git (and
www.github.com provided a really huge, huge hosting service), making it the strongest and coolest SCM
Git is based on a DAG structure (Directed Acyclic Graph), in which the main unit of change is the changeset.
It implements full merge-tracking, but at the commit level instead of the individual file revision level
(as, for instance, ClearCase does). It is extremely fast, with the only caveats being management of large
binary files and the requirement to replicate repositories in their entirety.
Git is clearly influenced by its kernel roots, and it's obviously not the easiest thing on earth to use.
But, it will definitely be the SCM of the next decade. Check out this