I am at University and my group is starting a programming project together.
In a previous subject we were taught the basics of svn and how to commit, as well as how to use Toitosesvn. We were told not to worry about branching (and so not taught about it) since it was a fairly small program. During the project the svn server went down, leaving everybody unable to work, however people don’t think much of it.
For this project, I am pushing to have a DVCS. After explaining how git differs from svn, they said it would be OK, but want it to be as easy as using svn. Since we will be using Eclipse^ they just want instructions on how to use git with Eclipse. (I plan on using EGit)
Since we were not taught about it, branching is a foreign concept to the rest of the group members. However, due to the new concepts in git (for example, branching) how to use the GUI is not the only thing that needs to be taught.
How do I introduce the concepts of git in a way that is easy for svn developers used to the gui?
Note: Git is being used because I am pushing it and I know it (and don’t know mercurial or bazaar)
^: We will be building an android program.
A few notes:
Git Ready is a good, gentle introduction to Git.
I also like the visual nature of Git for Computer Scientists.
Git is not really analogous to Subversion. Trying to draw analogies between the two of them is probably just going to confuse the mental model your teammates will need to work in git.
On a side note, I wouldn’t push your teammates too hard to use a technology they’re unfamiliar with. There is a right time and a wrong time to introduce technology, and on the limited horizon of a programming project, learning how to use a DVCS may not be the way to go. Part of being a good developer is knowing when not to fight some battles.
Ultimately, git is a great enhancement to productivity, but not if it comes at the cost of slowing everything else down for your team.