If you are just learning to use git, or you have been using it for a while without too much thinking, this introduction to Git principles provides a fantastic overview into the concepts behind git, using a very simple and natural examples. Do you need to switch to git from svn? My personal take on this is as follows:
- If you have several developers far away with bad internet connection, then YES.
- If you have more than several developers (say hundreds) then YES.
- If your developers often work on long multi-day features, where they want to commit often, but commits may result in instability of their branch, then YES. Git allows much easier branching than SVN.
- If you want to leverage GitHub's infrastructure for hosting your project privately or publicly, then YES.
To balance this and not to appear as I am advocating everyone to switch, here is the reverse:
- If you have a small team who works locally and uses a local SVN server then NO.
- If your team does not need branching, or prefers to check-in complete features instead of incremental check-ins then NO.
- If your team is used to SVN and there are no major issues, then NO.
- If your team is using SVN authorization module to create groups and grant them special access per subdirectory then NO. I am unaware of Git providing this level of access control.
The actual tutorial is here: http://www.eecs.harvard.edu/~cduan/technical/git/