Developed by the mastermind behind Linux to support the development of the kernel, Git is every developer's bread and butter. As such, there is plenty of documentation available online, as well hundreds of juicy code snippets ready to save us the day on Stack Overflow. And of course, searching for Git on the Amazon bookstore results in many pages of results. Among them, most of the books introduce the readers to Git, thus covering the basic commands and the architecture that makes it different from other VCS, such as Subversion. Git for Teams is difficult to categorize in this abudance of titles. It's neither an introduction to Git, nor an advanced text presenting lead developers and SCRUM masters how to better integreate Git within their projects. It's something in between, even though slightly more the latter than the former.
Released during the summer of 2015, and spanning some three hundred pages, Git for Teams presents the reader 12 chapters that cover many different aspects of Git, not all of them purely technical. As stated above, this book is difficult to categorize. Still, both the title and the back cover seem to rule out this being a text that teaches the basics of Git. On the back of the book, indeed, we read that This practical guide ... explains how using Git as a focal point can help your team work better together. The reader should definitely expect a book that shows how Git can be part of each and every step of the life cycle of a project. With real life examples, if possible.
The book can be hardly split into parts. While not a cookbook, each chapter stands on its own and does not require the previous ones. The first two chapters have little to do with Git. They are mostly focused on the team: how to set it up, chemistry, code of conduct. Software licenses are also taken into the discussion. The third chapter is by far the best of the whole book. It's about branching strategies. Throughout the years, indeed, many open source projects have presented and evolved models that are not broadly used: branch per feature, named branches (aka state branches), and scheduled deployment. Having a solid and consistent strategy often has a strong impact on the project itself, so that, based on the team size and distribution, it's important to pick a good branching strategy. The author presents four approaches in her book. Each is explained and also represented with friendly diagrams meant to give the reader a better overview of the whole process.
Chapter four gets us back to the first two: it discusses a topic, having a ticketing system, that while interesting, is not really about Git. Git is instead the guest star of the following chapters. Here the reader is presented the very basic Git commands, from cloning up to tracking remote repositories, passing through fetch and pull. Finally, the book ends discussing GitHub, Gitlab and BitBucket.
Thoughts. I think the title of this book is misleading. As the back cover states, this book should be about getting Git into the daily work flow of our team, not about how to set up a team and teach its members the basics of Git. Title apart, I think that this Git for Teams tries to cover too much terrain, ending up not covering well any of the topics. On the one hand, indeed, there are chapters presenting some of the very basic commands of Git. But just a part of them. If the team knows Git, these are not useful. If the ream does not, these are not enough. On the other hand, chapter three, which presents different branching strategies is not bad per se, but it's all alone, surrounded by another eleven chapters talking about other things.
I must admit that the book is easy to read, even if there is not a real flow of the information. As stated already, indeed, each chapter stands more or less on its own. The author presents a lot of diagrams and images which are easy to understand and informative. Thumbs up there.
Tying it all up, I did not like this book. I do not judge the content itself, but the fact that most of it has little to do with Git at all. Too bad chapter 3 was all alone. That is definitely what lead developers and project managers are interested into. Setting up a team and software licenses are interesting topics. But they do not really fit here.
As usual, you can find more reviews on my personal blog: books.lostinmalloc.com. Feel free to pass by and share your thoughts!