Buy new:
Save with Used - Good
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Version Control with Git: Powerful tools and techniques for collaborative software development 2nd Edition
Purchase options and add-ons
Get up to speed on Git for tracking, branching, merging, and managing code revisions. Through a series of step-by-step tutorials, this practical guide takes you quickly from Git fundamentals to advanced techniques, and provides friendly yet rigorous advice for navigating the many functions of this open source version control system.
This thoroughly revised edition also includes tips for manipulating trees, extended coverage of the reflog and stash, and a complete introduction to the GitHub repository. Git lets you manage code development in a virtually endless variety of ways, once you understand how to harness the systemâ??s flexibility. This book shows you how.
- Learn how to use Git for several real-world development scenarios
- Gain insight into Gitâ??s common-use cases, initial tasks, and basic functions
- Use the system for both centralized and distributed version control
- Learn how to manage merges, conflicts, patches, and diffs
- Apply advanced techniques such as rebasing, hooks, and ways to handle submodules
- Interact with Subversion (SVN) repositoriesâ??including SVN to Git conversions
- Navigate, use, and contribute to open source projects though GitHub
- ISBN-101449316387
- ISBN-13978-1449316389
- Edition2nd
- PublisherO'Reilly Media
- Publication dateSeptember 25, 2012
- LanguageEnglish
- Dimensions7 x 1.25 x 9.19 inches
- Print length452 pages
There is a newer edition of this item:
Frequently bought together

Customers who viewed this item also viewed
From the Publisher
Git Pocket Guide
|
Version Control with Git
|
Git for Teams
|
Building Tools with GitHub
|
|
|---|---|---|---|---|
| Customer Reviews |
4.5 out of 5 stars 284
|
4.4 out of 5 stars 262
|
4.2 out of 5 stars 39
|
4.8 out of 5 stars 6
|
| Price | $14.99$14.99 | $40.00$40.00 | $34.48$34.48 | $33.61$33.61 |
| Click on these related titles: | A Working Introduction | Powerful tools and techniques for collaborative software development | Powerful tools and techniques for collaborative software development | Customize Your Workflow |
Editorial Reviews
Book Description
About the Author
In prior lives, Jon has spent a number of years developing highly optimizing compilers, router protocols, Linux porting, and the occasional game. Jon holds degrees in Computer Science from Purdue University. In his spare time, he is a home winemaker.
Matthew McCullough, Vice President of Training for GitHub.com, is an energetic 15-year veteran of enterprise software development, world-traveling open source educator, and co-founder of a US consultancy. All these activities provide him avenues of sharing success stories of leveraging Git and GitHub. Matthew is a contributing author to the Gradle and Jenkins O'Reilly books, as well as the creator of the Git Master Class series for O'Reilly. Matthew also regularly speaks on the No Fluff Just Stuff Java symposium series. He is the author of the DZone Git RefCard, and president of the Denver Open Source Users Group.
Product details
- Publisher : O'Reilly Media
- Publication date : September 25, 2012
- Edition : 2nd
- Language : English
- Print length : 452 pages
- ISBN-10 : 1449316387
- ISBN-13 : 978-1449316389
- Item Weight : 1.54 pounds
- Dimensions : 7 x 1.25 x 9.19 inches
- Best Sellers Rank: #1,499,213 in Books (See Top 100 in Books)
- #73 in Software Utilities
- #1,603 in Microsoft Programming (Books)
- #1,640 in Software Development (Books)
- Customer Reviews:
About the authors

Matthew McCullough is an energetic 14 year veteran of enterprise software development, open source education, vice president of Training at GitHub, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is a member of the JCP, reviewer for technology publishers including O'Reilly, author of the Presentation Patterns & Anti-Patterns book, multi-year speaker on the No Fluff Just Stuff tour, author of the DZone Maven, Git & Google App Engine RefCards. He channels his teaching energy through activities as President of the Denver Open Source Users Group.
Matthew loves technology, but has always had a parallel passion for teaching technical topics. He's struggled with the same challenges that any presenter would -- assembly of slides, hardware meltdowns, venue catastrophes, audience attentiveness, and acceptance to international venues he never thought would actually say yes. Matthew is excited to share these learning experiences and concrete solutions to the challenges in both story and recipe form in this book.
Matthew resides in Denver with his beautiful wife and daughter, who are active in nearly every outdoor activity Colorado offers. He writes frequently on software and presenting.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book provides a great depth of understanding of Git, with one review noting it covers every aspect in detail. Moreover, the readability receives positive feedback, with customers appreciating the clear language and diagrams. However, the organization receives mixed reviews, with some customers finding it well-organized while others disagree.
AI Generated from the text of customer reviews
Select to learn more
Customers find the book easy to read and well-written, with clear diagrams and examples.
"...Working through this book, I especially appreciated the diagrams (which explain Git objects and commit graphs) and the high number of working..." Read more
"...While I was very impressed with the book and the author's obvious familiarity and knowledge about git, I felt that the chapters were sometimes..." Read more
"Though more comprehensive than Scott Chacon's Pro Git, this book is a mess. It fails both as a reference and as a tutorial...." Read more
"...take great care to explain the underlying concepts and architecture in great detail, and provide a comprehensive understanding of why and how git..." Read more
Customers have mixed opinions about the book's organization, with some finding it well structured while others disagree.
"...I give it four stars for content, and dock it a star for its abysmal organization...." Read more
"...Sections hierarchically numbered are handy! - It could explore more the Git basic concepts, giving a stronger foundation...." Read more
"...and knowledge about git, I felt that the chapters were sometimes ordered a little strangely...." Read more
"...to understand the "why" of what you do, and it's organized well enough to search for a command and read how to use it...." Read more
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on March 20, 2010I've been using Git for my side projects for nearly a year now, based primarily on knowledge I scraped together through conference sessions, screen-casts and cheat sheets. This is how a lot of people seem to get started with Git, but at some point it becomes necessary to really understand how it's working and what some of the more advanced commands are for.
This book was exactly the right next step for me, moving me from stumbling around in Git to really understanding it. The author accomplishes this by taking the time to cover Git internals and to build on your knowledge as the book progresses. At first, I resisted all the plumbing explanations, since I doubt I'll be contributing to Git itself, but after a chapter or two it becomes obvious that understanding what Git is doing internally is pretty important to understanding how to interact with it. Additionally, the internals are always explained from a layman's perspective and never get so nuanced that they distract from the topic area being covered.
The book is organized so that you slowly build up knowledge of how Git works, with many topic areas sort of split into a basic and advanced chapter. This was a bit annoying at first, but since the more advanced topics require you to understand other aspects of the tool first, it's necessary. As an example, you need to understand diffs, branching and merges before you can worry about patches, and you need to understand branching and merging before you can worry about remotes.
The book also ends with a decent overview of how to use Git with SVN, which is still pretty important given that a lot of organizations will be relying on SVN for quite some time. Unfortunately, this is one of the few areas that could have used a bit more coverage and seemed to lack the basic and advanced topic setup that worked so well for the rest of the book.
It also doesn't provide much in the way of best practices for employing Git, although I don't see this as a weakness. The closest it comes to recommending a strategy to use it with your team is to kind of sketch out how some very high-profile open source projects work with the tool, which is unlikely to directly apply. Fortunately, there's a lot of content on the Web that covers use cases, branching strategies and best practices, so you won't have trouble finding this information elsewhere. The author doesn't take an opinion on such topics, instead focusing on how to make Git do what you want once you've decided on how you want to use it.
In the end, I recommend this book to anybody who has decided that Git is going to be their DVCS and intends to read the book sequentially, cover to cover. If you're still trying to decide between Mercurial, Bazaar and Git, this is probably a lot more information than you want or require. If you're looking for a quick reference, then the progressive structure may leave you scratching your head when jumping around topic areas.
Once you settle on Git, and want to invest the time to build up the conceptual framework you'll need to succeed with it, this book won't disappoint.
- Reviewed in the United States on August 16, 2022Format: PaperbackVerified PurchaseIt's obvious from the start that this book is quite old. It regularly goes on about some major changes that took place around version 1.6 of Git. We're out on version 2.37 right now, so all of that is basically ancient history.
Aside from that, it covers all you need to know and some you don't. If you don't use the command line or are afraid to, this book will offer guidance and reassurance that you're looking at and doing the right thing.
I wouldn't consider myself any sort of "power user" when it comes to Git; I'm happy to let IntelliJ do a lot of the heavy lifting. But that being said, there are things IntelliJ can't do. Likely many more things I don't or didn't know about until reading this book.
I'm not saying that Git is by any means poorly documented. In fact, it's quite the opposite. If you run `man git` from a Terminal window, you won't make it passed the Description before encountering a reference to more documentation (i.e., `gittutorial`). Now, what I will say is that man pages are also not the easiest to get through... So this book fills the gap. You can always go back to the source, but sometimes it's nice to have a more user-friendly option for quick reference. This book is that.
- Reviewed in the United States on May 8, 2015Format: PaperbackVerified PurchaseSolid discussion of Git for someone like me who has primarily been using CVS and SVN (Subversion) throughout their career, and has since started using Git. While I do not view this book as the "train wreck" that the top reviewer here describes, be aware that if you are completely new to version control systems (VCS) you will likely want to look elsewhere (at least for introductory explanations), because the authors jump right into Git usage without first providing much VCS background information.
After a cursory Git introduction, the authors provide what I consider the core of the text (the first 14 chapters of 21), covering installation, how to get started, basic Git concepts, file management, the Git index, commits, branches, diffs, merges, altering commits, the stash, the reflog, remote repositories, repository management, and patches. After this core, the discussion turns to hooks, combining projects, submodule best practices, using Git with SVN repositories, advanced manipulations, tips/tricks/techniques, and use of GitHub (although I decided to skip a couple of these latter chapters, such as the one on hooks, because I do not plan to use this feature in the near future).
Working through this book, I especially appreciated the diagrams (which explain Git objects and commit graphs) and the high number of working examples (of which I recently executed about 90% or so). The diagrams which explain branching and merging are the types of diagrams typical colleagues and I white board with each other to explain a given project state, helping enable both understanding of the material as well as providing future reference for visual depiction.
One of the reasons I decided to go with this book to get more familiar with Git, other than the fact that there are not many Git texts of which to choose in the marketplace, is because it was published relatively recently relative to when I purchased it about a year ago. Unfortunately, a potentially better book called "Pro Git (Second Edition)" that other reviewers have mentioned has since been published, something that happens when a book is not read soon after purchase.
Be aware that while almost every single example that I executed over the course of working through this book ran flawlessly (somewhat of a rarity with technology texts), I did notice on a few occasions that the command line output from a handful of commands was slightly different than what was represented in the material, and I attribute this to a lack of alignment between the Git version that the authors used (1.7.9) and what I used (2.1.4), downloaded as part of Cygwin. However, this aspect did not distract from the material presented by Loeliger and McCullough.
Although the chapter on installation (Chapter 2) does briefly mention the Git version that the authors used, the remainder of the book really does not address this topic apart from a few isolated instances. For example, the chapter on remote repositories (Chapter 12) mentions that differing versions will display a remote-tracking branch differently. When executing another example in the same chapter, I came across a warning that gets displayed when pushing to the depot because the implicit value of "push.default" was changed in Git 2.0 from "matching" to "simple". And although minor, an attempt to clone the 1.5.x branch of SVN referenced in the chapter on using Git with SVN repositories resulted in a "repository moved temporarily" message (the most recent stable version of SVN is currently 1.8.13).
In general, however, this book provides a solid discussion of Git, and these are all but minor annoyances. A review of Git itself is not the purpose of a Git book review, but if you are at a point where you have solely heard about Git from colleagues who recommend that Git should be used because "it's cool" or remark that "all you really need to know are like three commands, don't worry about the other stuff" (I have actually heard developers make these types of comments), diving into Git with regard to what is happening under the covers is arguably the right way to go, and this book can help.
Top reviews from other countries
jayaichReviewed in the United Kingdom on March 15, 20185.0 out of 5 stars Very good book - useful and in-depth
Format: PaperbackVerified PurchaseI needed something more than just googling about git as we were going to be using git more and more at work. This book seemed ideal. As others have said it's not a pocket guide though. It does cover some areas that I may well never use, but it also covers the basics. And that's good. I have used it as a reference, and on occasion had to go back and re-read certain areas in which I needed to understand something a bit more deeply.
Overall I found it easy enough to read, in depth but you don't have to read everything if you don't want to, and good as a reference book. It has certainly helped me with using git (from the command-line) at work.
HayatoReviewed in Japan on September 12, 20185.0 out of 5 stars Good book !!
Format: PaperbackVerified PurchaseEasy to understand and follow.
Good for those who want to star learning about git.
-
Felix J. OgrisReviewed in Germany on January 26, 20145.0 out of 5 stars top
Lesenwertes Handbuch zu git. Der Autor geht nicht nur auf die alltäglichen Befehle ein, sondern erläutert auch, wie git unter der Motorhaube arbeitet, was den einen oder anderen ungewohnten Arbeitsschritt verständlich macht.
Dr Ron CatterallReviewed in Mexico on December 22, 20194.0 out of 5 stars GIT
Format: PaperbackVerified Purchasegood book, o'reily quality
Bartolomucci FabrizioReviewed in Italy on May 28, 20145.0 out of 5 stars Really beautiful
Very chaming and elegant, and also belle built to overcome normal life events. As it is with most things coming from Italy.







