Git's success is a mystery to me.
Here’s a real problem
Teams are getting more spread out. They’re separated by time zones, organizational boundaries and even large bodies of water. They need tools to help them work together. In many cases, the tool with the best technical features doesn’t win out. Quite often it’s the tool that’s easiest to use. I remember the Iomega Zip drive, which connected to the computer via parallel port and supporting a simple push-button eject mechanism launching at the same time as the Syquest EZ-Drive which used a SCSI connection (internal add-on card included) and 35% more storage than the Zip drive. Syquest went out of business. jQuery, PHP, the list goes on… tools that are easy to use, that are simple at first, beat out those that are technically superior.
Except with Git.
Git started out as a technically superior platform with a clunky interface. It still is a technically superior platform and the interface is still clunky. It introduced several new concepts to the age-old world of version control. Why did it win? I have some ideas, but does it really matter? Version control means Git. Being productive in today’s teams means learning the concepts, learning the tools and becoming proficient. Git is not an optional skill any more.