Having to deal with Git when you come from years of another Version Control System can be hard – I was very comfortable with the Team Foundation Version Control and in the rare cases I needed a distributed VCS my choice went to Mercurial.
I was very biased against Git, for several reasons. But then, after using it and dealing with it at work, I managed to find a position for it in my toolbox. Let’s see the reasons which made me accepting Git
Git is different
Yes, indeed. It was born with a specific purpose (VCS for the Linux kernel) and with a specific target in mind – kernel developers. Git is sometimes counterintuitive and not consistent, you have to learn it from the ground up without comparing it with other VCSs.
Despite it is a VCS, you can change the history of your source tree for example. You just have to understand that it is different, that’s all.
It is a great tool to be used with Team Foundation Server
Team Foundation Server is maybe one of the most interoperable product at Microsoft, and including Git inside it has been a marvellous choice.
You can have heterogeneous projects thanks to it, and even use it together with the TFVC if you want – with git-tf. And do not forget the migration capability – there are countless tools for migrating from other VCSs to Git.
It is lightweight and fast
Despite its steep learning curve, once you are familiar with the basic commands Git is blazingly fast and lightweight – thanks to its distributed nature.
These are the main reasons which led me to live with Git without fighting with it. I am still a learner on the subject though, maybe in the future there might be a revised version of the list. Let’s see