Thursday one of my co-workers at Zirous, Tony Brimeyer led a lunch and learn on switching to Git for our Software Configuration Management (SCM) system. He first started out with going over the why. I am currently working on a project using CVS. We have used CVS for a long time and looked at our other alternatives and selected Git.
Tony reviewed the key differences in a central repository system, like CVS and Subversion and a distributed repository system like Git. In the distributed model every user has their own local repository. They can then push to the master repository when they are ready. Along with that change their is some slight changes in wording or syntax. For instance in CVS you would checkout code where in Git you clone the repository. I recall changing from CVS to Subverison while at ATG, it took us awhile to get used to the new way. Any change takes time and we must be patient.
Tony outlined the coding with Git with this diagram of development where you may have third party dependencies and can merge them on your local repository before pushing in to the master. I thought this would be real helpful as we use many Oracle libraries and can vet them on our local machine.
The interesting thing about this change is there were many good questions as people started to think about how the normal process might change. One interesting note Tony made was in Git you merge changes as opposed to files in CVS. I am looking forward to working more with Git in the future.