Goodreads helps you keep track of books you want to read.
Start by marking “Pro Git” as Want to Read:
Pro Git
Enlarge cover
Rate this book
Clear rating
Open Preview

Pro Git

4.17  ·  Rating details ·  2,912 ratings  ·  275 reviews
Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.

A book by Git experts to turn you into a Git expert. Introduces the world of distributed versi
Paperback, 290 pages
Published August 1st 2009 by Apress (first published 2009)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Pro Git, please sign up.
Popular Answered Questions

Community Reviews

Showing 1-30
Average rating 4.17  · 
Rating details
 ·  2,912 ratings  ·  275 reviews

More filters
Sort order
Start your review of Pro Git
Feb 23, 2012 rated it liked it  ·  review of another edition
Despite what the title would indicate, this is targeted at beginners. It teaches you git assuming you have passing knowledge about VCSs — and does a pretty great job teaching the basics — but leaves a lot of open questions about intermediate topics, like branching strategies (and each of their benefits and drawbacks).

Update: I've bumped this from two to three stars since the book does have some good value. I've told many beginners to read the first several chapters to get a good foundation. Inte
Stefan Kanev
Aug 19, 2014 rated it really liked it
Every programmer should have read at leas on git book and this one is a good candidate.

Even if I've already did my part, I enjoy reading a git book every now and then. I usually find out a few things that I did not know or I "cement" existing knowledge. I learned a couple of new tricks.

The first few chapters explain the basics that you're probably familiar with. They do it in a very nice way (lot's of pictures and examples) and I could understand most of it without having to start my computer an
Feb 11, 2014 rated it liked it
Cool read. 2 hours of reading / first 100 pages were just enough to make my everyday life with git an exciting experience. Some do uncover lots of internals - feel free to skim.


Some of my takeaways:
1. Every revision in git is a snapshot
2. Every revision has a parent(or multiple ones in case of merge)
3. Rebasing won't nuke your old revisions - that's just like basing whole new revision chain with the changes you made
4. Branches are just references to revisions - thus you can point this referen
Ivan Ruski
May 25, 2020 rated it it was amazing
Great reference book with a lot of chapters that will help you with your day-to-day interactions with git.

I am more confident about using git then I was before reading this book. The Git internals chapter is really cool especially the Data recovery section, also all of the information related to rewriting history is a gem as well.

Even though I've tried to read the book cover to cover I wouldn't try that approach again because there is just so much information that I can't possibly remember
Sep 09, 2013 rated it really liked it
I have been using both Subversion and Git over the past 7 years or so. I prefer Git but do not dismiss Subversion as irrelevant.

This is a very good introduction to Git. Yes, it is still an introduction. I've read and compiled a lot more Git tips and commands that only someone who works in a distributed team would use.

If you read this, you should also read about defensive programming and why you have to fail early and OPENLY! At first, I thought that is just insane. But there's no other sensible
Carlos Duarte do Nascimento
This book is highly regarded among GitHub employees, and for no small reason. Even if you are comfortable with your current Git knowledge, Chapter 10 (Git Internals) introduces the "plumbing" (low-level) vs "porcelain" (high-level) divide and has a fun exercise of "reconstructing" the high-level git entities (files, commits, branches, etc.) from the "bottom up" - it is unlikely you'll ever do anything like that on typical git usage, but understanding those concepts is (IMHO) akin to understandin ...more
Sep 24, 2010 rated it it was amazing  ·  review of another edition
Shelves: technical_docs
Great book, excellent intro to git, then gives you just enough of the internals to understand what you're doing, and then covers advanced features followed by a deep dive into the internals.

This is a community-written book and it shows that it's been vetted many times. The examples are concise and easily understood. The book overall is very concise yet I seldom found myself wanting for better explanations of the topics and techniques.

Should be your first stop into learning git.
Nov 21, 2016 rated it it was amazing  ·  review of another edition
The second edition of Pro Git, definitely worth reading. Available for free at

Git can be confusing and unnecessarily complex for beginners. In this book, you get extensive explanation. I will have to re-read some parts.
Veselin Nikolov
Nov 19, 2014 rated it it was amazing  ·  review of another edition
Some parts of the book were eye-opening for me. It's building a pyramid of knowledge, but it doesn't look like that until you reach the final chapter - Internals. Only after reading it I managed to connect all the dots. ...more
Vladimir Rybalko
Dec 06, 2017 rated it really liked it
Shelves: programming
This is a good book. It's definitely what I wanted to read about Git. No useless chapters, no over complicated examples. Nuff said, Git is the best. Just read it. ...more
Khanh Cao
Oct 25, 2020 rated it it was amazing  ·  review of another edition
Some repos are down, some command lines are outdated but still one of the classic
Would definitely recommend
Graham Downs
Feb 10, 2019 rated it really liked it  ·  review of another edition
Shelves: non-fiction
Before I begin, an introduction is in order, to provide a little context. I'm a Windows .NET developer, and have been using Git for the past eight years or so. I use it in both my day job (the projects we work on are all source controlled in Git these days), but also in my writing business, to source control the Scrivener projects for my books. It's a fantastic tool for version controlling any kind of file you can think of.

Although I am comfortable with various graphical wrappers, I've also alw
Wilson Jimenez
Nov 17, 2017 rated it really liked it  ·  review of another edition
Shelves: web-development
Chapters review/summary:

1) Some history and installation options. Differences between centralised VCS and distributed, what makes git different from other distributed: features like branching and working with large codebases in the way that branches are just pointers to a commit and each commit has snapshots of the tracked files at a point in time rather than tracking the delta between file revisions, three main states: committed, stated and modified; which is the same as: git directory, staging
Sep 06, 2012 rated it really liked it
This book provides a good introduction to using Git. As with most educational books, the examples presented are more helpful if the reader works through them while reading the text. Because the book is freely available online as well as available in print it is in my opinion a must-read for Git newcomers.

Some reviewers complain that the book spends too much time comparing Git to other source code management (SCM) software, but I would argue that this characteristic is beneficial to readers relat
Brian Salehi
Jun 16, 2018 rated it it was amazing  ·  review of another edition
This is one of the most essential books/tools for programmers.
Context was great, easy to learn, eased by graphical patterns and samples, you have no excuse to not master it.
Gavin Rebeiro
Sep 05, 2019 rated it really liked it
Shelves: computer_science
I read the internet version of this book. The organisation of the chapters were not to my liking. The content in the "Git Internals" chapter should really be given directly after an abstract overview of the basics of Git (the first 3 chapters). It helps to understand the fundamentals first and then get on to complex use cases; I'm not a fan of the 'just do x,y,z and hope it works every time' school of teaching.

All that being said, why the high rating? The content is all there and there are lots
May 19, 2021 rated it really liked it
Shelves: data-science
This book coupled with MIT's Missing Semester lecture video on version control were what I needed to finally feel comfortable using git (as opposed to treating git commands as arcane incantations). Great resource and reference. I read 6 of the 10 chapters; the rest of the book goes into more depth than I currently care for. The most important ideas for someone new to git are covered in the first 3 chapters. For a technical book, it reads easily. ...more
Idir Yacine
Aug 27, 2021 rated it it was amazing
Shelves: software, favorite
great book , I believe this book is best used as a desktop reference .
Jan 22, 2018 rated it liked it
lots of details to get a solid grasp on Git.
eri b.❀
Jan 25, 2019 rated it really liked it
Shelves: cs
You’re about to spend several hours of your life reading about Git.

I sure did! Honestly, the only think I didn't like about this was the title, because it's misleading: this is not for pros, but a manual for people that are just getting started on git like me, and it's so useful! I especially liked that it explaing how and why some things work in git, instead of just giving you the commands to run. I loved the step-by-step guide to both gitlabs and github! Just what I needed. It definetly he
Aug 07, 2009 rated it liked it
A reasonably clear introduction and explanation of git. The first part does a good job at explaining things for new users, and is especially good at pointing out saner ways to do things that were added in recent versions of git. It seemed to cover most of the stuff I've learned the hard way, and I found one or two new things. The only glaring omission is it didn't seem to cover git reset at all.

The chapter on managing a project with git covered problems I'm just starting to encounter, so was app
Jay Beavers
Jan 04, 2012 rated it really liked it
Excellent book that not only covers the mechanics of Git but also common ways it it used (e.g. for a small development team, for a large distributed team, patches distributed over an email list, via github, etc.) I especially liked the perspectives on 'how to be a good contributor to a open source project' and 'how to be a good manager of an open source project'.

Does a very thorough job of covering the advanced aspects of the git shell commands. Does not however cover any of the GUI git tools or
Sebastian Gebski
Oct 22, 2013 rated it it was amazing
Awesome. Absolutely brilliant.

It's the best introduction to Git you can imagine.
Full of real-life examples and typical scenarios, not afraid of describing the internals - but not to overcomplicate things. Everything has its purpose in this book and as a result it's the greatest tutorial to Git one can imagine.

Personally, I already knew and used Git earlier, but until now, I didn't understand its functionality as good as I should -> this book is a true eye-opener. HIGHLY recommended.

P.S. On the t
Michael Cabus
Jun 11, 2017 rated it it was amazing
I had to learn git in a meaningful way, not just the cursory way I did. I love good technical books, and this is one. Git isn't rocket science, but does require an understanding of the conceptual model to work with's easy to go down a rabbit hole otherwise.

This is basically a must-read for digital designers and UX Designers. Not knowing this will make collaboration with product engineers difficult. I read a lot of this on a Sunday afternoon, and that was casual reading. It's also availab
Jan 25, 2016 rated it really liked it
Git is the most popular distributed version control system. Knowing it is important for any software engineer writing solid code.

Some more references go along with this book:

If these are very advanced, it is better to read basics of version control (Hg, git, SVN etC) from
Vasil Kolev
May 26, 2012 rated it it was amazing  ·  review of another edition
Shelves: good-tech-books, tech
A very good book on git, describing the processes and use cases of the system. It's very interesting and different than most of the rest of the version control systems and some things are very weird to anyone who's been living with CVS/SVN for most of his/her life. Definitely worth a look. ...more
Oct 22, 2012 rated it it was amazing
Shelves: programming
In my opinion this is the best introduction to Git I've seen, which also covers some more advanced areas as well ...more
Todd N
May 24, 2013 rated it really liked it
I probably should have read this 5-6 years ago. Oh well. Made for a lovely Friday evening.
Mohannad Hassan
Jul 15, 2017 rated it really liked it

Read in 4 years and 5 months! Top that!

Perhaps that was so significant that Goodreads sent me a "okaaay ... so let's move on please" kind of email just when I marked it as read.

Normally, I wouldn't have picked up the book in the first place, so the fact that I kept returning to it is an exhibit of its appeal to me. Git captured my attention well when I started using it in 2012, after having only used version control for a couple of college projects. I've been trying to leverage its powers ever s

Aug 12, 2020 rated it it was amazing
Shelves: computer-science
Saying that this book is good would be an understatement. It does a great job at teaching the basics of git and delving into more advanced topics if the reader is interested in them and wants to know more. This isn't a book for someone who already knows how to use git and has a deep knowledge of it. I think that the book is aimed at those getting started with git or those who want to go beyond the basics.

The chapters that covers the basics and setting up git are a must for anyone who doesn't hav
« previous 1 3 4 5 6 7 8 9 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • The C Programming Language
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Ry's Git Tutorial
  • Head First Design Patterns
  • The Pragmatic Programmer: From Journeyman to Master
  • The Linux Command Line
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Eloquent JavaScript: A Modern Introduction to Programming
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • The C++ Programming Language
  • Compilers: Principles, Techniques, and Tools
  • Head First Java
  • Effective Java
  • Designing Data-Intensive Applications
  • HTML and CSS: Design and Build Websites
  • Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  • The Passionate Programmer
  • Soft Skills: The Software Developer's Life Manual
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

Related Articles

You’d never know it from reading the books listed here, but good science writing is incredibly difficult to pull off. There is both an art...
126 likes · 9 comments
No trivia or quizzes yet. Add some now »
“SHORT NOTE ABOUT SHA-1 A lot of people become concerned at some point that they will, by random happenstance, have two objects in their repository that hash to the same SHA-1 value. What then? If you do happen to commit an object that hashes to the same SHA-1 value as a previous object in your repository, Git will see the previous object already in your Git database and assume it was already written. If you try to check out that object again at some point, you’ll always get the data of the first object. However, you should be aware of how ridiculously unlikely this scenario is. The SHA-1 digest is 20 bytes or 160 bits. The number of randomly hashed objects needed to ensure a 50% probability of a single collision is about 280 (the formula for determining collision probability is p = (n(n-1)/2) * (1/2^160)). 280 is 1.2 x 10^24 or 1 million billion billion. That’s 1,200 times the number of grains of sand on the earth. Here’s an example to give you an idea of what it would take to get a SHA-1 collision. If all 6.5 billion humans on Earth were programming, and every second, each one was producing code that was the equivalent of the entire Linux kernel history (3.6 million Git objects) and pushing it into one enormous Git repository, it would take roughly 2 years until that repository contained enough objects to have a 50% probability of a single SHA-1 object collision. A higher probability exists that every member of your programming team will be attacked and killed by wolves in unrelated incidents on the same night.” 2 likes
“about getting” 0 likes
More quotes…