As I was looking for a book on Bazaar (a book I didn’t find yet), I ran accross this one on Git. I heard that to use correctly Git, one needed a tutorial, so I figured a pragmatic book would do the trick.
Content and opinions
The book has three main parts: a general introduction to Distributed Version Control Systems (DVCS) and Git, using Git everyday and what is called administration.
The introduction covers the different choices made by Git relative to Version Control. Without the actual commands, it is a gentle introduction, and if the choices does not suit you, well, you can walk away here. Its mainly an introduction to DVCS, but with a Git biais. If you find the book in a real library, you can browse this single chapter first. Then, another chapter helps you install the software package on Linux, OS X or even Windows.
The actual fun part comes next. How do you actually use Git to add and commit changes? Git has some some specifics in that matter compared to Bazaar or Mercurial. What are branches and how can they be used, how they should be used? What is the purpose of history and how it can be changed (fundamentaly changed)? Git is one of the few VCS that can actually rewrite history. There are of course enough warnings because this can be dangerous. Once history is known, it can be shared through remote repositories, and then how should a repository be organized? Finally some additional tools are presented. It’s really easy to follow the evolution, and it draws a small picture of the commands you will use every day.
The last part is abut migrating from CVS and SVN, and then how to set up a Git server. The connection between the commands in SVN and CVS is also described when you switch to Git. Of course, you will need more than CVS and SVN knowlegde to really use Git to its maximum power, the book is not about the theory of VCS, only about how to use Git. You will find a good introduction, but you will have to learn by other means the complete philosophy behind DVCS.
I didn’t know much about Git before reading the book, and the approach proposed here is efficient (although simple): from the basics to advanced workflows. You need to know a little about version control, as the Git specific parts are well explained in the book.