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 of the concepts behind git, using 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 connections, 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 appear as if I am advocating for 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 the 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 can be found here.
Update from 2023
There have been many new tools appearing in the git
ecosystem.
One such tool is “Git Kraken”.
Another is Github CLI tool gh
.