Why we moved to Git?
When we started Classpro, we had to build up our working development environment. We started using SVN as revision control for source code. SVN has the advantage that it's much simple to learn especially with TortoiseSVN GUI.
Why Switch to Git?
Fast-forward 4 months: we’re still just 3 developers, so our needs are fairly minimal. However, this seemed like a good time to make the switch for a few reasons:
Decentralized: Imagine you are a developer, you develop on your laptop and you want to have source control so that you can go back to previous version. With Subversion, you have a Problem: The SVN Repository may be in a location you can't reach (in your company, and you don't have internet at the moment), you cannot commit. If you want to make a copy of your code, you have to literally copy/paste it. With Git, you do not have this problem. Your local copy is a repository, and you can commit to it and get all benefits of source control. When you regain connectivity to the main repository, you can commit against it.
Branching: We had 5 different branches (master, development, deepak_repo, vijay_repo and jayesh_repo). We had horrible flashbacks of late nights trying to merge an SVN branch back into master trunk. In less words: SVN merging sucks. In Git, Branches are lightweight and merging is easy, and I mean really easy.
Fear: Having all of our revision history and development code on one machine, especially on local machine, is terrifying.
Where Git really shines is branching and working with other people.
Conclusion
Though git is much harder to learn than SVN, since it has more concepts, commands and sometimes more confusing for a starter. What is a remote? and How to properly set up the initial repository? are two questions that come up at the beginning, especially compared to SVN's simple "svnadmin create", Git's "git init" can take the parameters --bare and --shared which seems to be the "proper" way to set up a centralized repository. There are reasons for this, but it adds complexity. But once you get it all, it is simple to use.
Git is not better or worse, it's just different and I’m confident that the switch was a good move. It didn’t cause much downtime for the three of us, and it’s a lot easier to switch while you’re small. I’d definitely recommend at least looking into Git (creating a test repo, poking around, etc).











