After I had chosen to switch to Git, I thought the time has become to read a complete book on the subject to understand the concepts of Git from the base to further level.
So I chose "Version control with Git", from Jon Loeliger
I just finished to read it, so I will try to give my impressions about this book on this post.
In the first chapter, the author describe Git, it goals and it history. The second one is about the installation of Git.
The next three chapters are about the basic concepts of Git.Add a file, commit the changes, track the changes and view the differences. And how to configure the repository and the global installation. More than that, these chapters explains also how Git store the different objects and track the changes of the repository. The index is also fully explained and we learn how to ignore some files.
After these first chapters, the next chapters are very specific two one feature.
- The sixth chapter is about the commits : Identify the commits, find a commit, view the commit history, ...
- The seventh is about the branches : create branches, switch to another branch, delete a branch, merge 2 branches, ...
- The next one is about the diff : how to read them, how to create them, ...
- The ninth is about the merges. It explains with a lot of precision how the merges are done, the different strategies Git can use and how to solve the problems we can found when merging branches
These 4 chapters are really interesting, but sometimes a little boring. There is a lot of informations and the author is going really far into Git. Nevertheless, it's good written.
After that we learn how to alter commits.12
And after, we learn how to work with remote repositories and make our changes available to the other developers. We learn the different ways to work in a project with Git.
The 2 next chapters are bout the patches and the hooks. And the last two are about 2 features less used that are the possibility to combine several repositories into one and the possibility to work with Git in a SVN project.
To conclude, I have to say that this book is an excellent book about Git. It's not only an introduction, it's a complete reference about this great Version Control System. Sometimes, I thought that there is too details about some features, but perhaps for something a little more used to Git, it will be fine. I advice this book to everyone who want to learn almost everything about Git.