Use Git if you can

Git is currently the most popular distributed version control system. It was created by Linus Torvalds for the purpose of maintaining versions of the Linux kernel when its core developers needed to resign from proprietary BitKeeper software that they used previously.

If you have not used any of the version control systems, then you should start with Git from the beginning. If you already use some other tools for version control, learn Git anyway. You should definitely do that, even if your organization is unwilling to switch to Git in the near future. Otherwise, you risk becoming a living fossil.

I'm not saying that Git is the ultimate and best DVCS. It surely has some disadvantages. Most of all, it is not an easy to use tool and is very challenging for newcomers. Git's steep learning curve is already a source of many jokes online. There may be some version control systems that may perform better for a lot of projects, and the full list of open source Git contenders would be quite long. Anyway, Git is currently the most popular DVCS, so the network effect really works in its favor.

Briefly speaking, the network effect means that the overall benefit of using popular tools is greater than others, even if definitely better alternatives exist, precisely due to its high popularity (this is how VHS killed Betamax). It is very probable that people in your organization, as well as new hires, are somewhat proficient with Git, so the cost of integrating exactly this DVCS will be lower than trying something less popular.

Anyway, it is still always good to know something more, and familiarizing yourself with other DVCSes won't hurt you. The most popular open source rivals of Git are Mercurial, Bazaar, and Fossil. The first one is especially neat because it is written in Python and was the official version control system for CPython sources. There are some signs that it may change in the near future, so CPython developers may already use Git at the time you read this book. But it really does not matter. Both systems are great. If there was no Git or it was less popular, I would definitely recommend Mercurial. There is evident beauty in its design. It's definitely not as powerful as Git, but is a lot easier to master for beginners.

Let's take a look at GitFlow and GitHub Flow in the next section.