small medium large xlarge

Pragmatic Guide to Git


Cover image for Pragmatic Guide to Git

Pragmatic Guide to Git


Need to learn how to wrap your head around Git, but don’t need a lot of hand holding? Grab this book if you’re new to Git, not to the world of programming. Git tasks displayed on two-page spreads provide all the context you need, without the extra fluff.

Customer Reviews

With two years of experience with Git, I thought I would have known most everything in Pragmatic Guide to Git. After reading it cover to cover, I learned that’s not the case. It’s a well-organized collection of useful Git techniques for all audiences.

- Luke Pillow

Software engineer,

This book is a must-have for anyone using Git or just getting started with Git. It has saved me time in finding the best practices for managing my Git repositories and will sit on my bookshelf as the go-to resource for anything Git.

- John Mertic

Senior software engineer, SugarCRM

Git can be intimidating and frustrating to new users. Pragmatic Guide to Git alleviates that pain with a straightforward, concise walk-through that arms readers with exactly what they need to use Git productively.

- Luigi Montanez

Software Developer, Sunlight Labs

I’d heard a lot of the hype surrounding Git. It wasn’t until I read Travis’ book that I learned why people are so enthusiastic about it. Travis does a great job explaining the power of Git in a digestible format.

- Ivo Jansch

PHP evangelist, author, and founder,

See All Reviews

Choose Your Format(s)

  • $18.00 In Stock
  • Ebooks are DRM free.

  • Ebook delivery options.


Contents & Extracts

For more information on the Pragmatic Guide Series, please see the faq

Full Table of Contents


  • Getting Started
    • Task 1. Installing Git
    • Task 2. Configuring Git
    • Task 3. Creating a New Repository
    • Task 4. Creating a Local Copy of an Existing Repository
  • Working with Git excerpt
    • Task 5. Seeing What Has Changed
    • Task 6. Staging Changes to Commit
    • Task 7. Committing Changes
    • Task 8. Ignoring Files
    • Task 9. Undoing Uncommitted Changes
    • Task 10. Moving Files in Git
    • Task 11. Deleting Files in Git
    • Task 12. Sharing Changes
  • Organizing Your Repository with Branches and Tags
    • Task 13. Creating and Switching Branches
    • Task 14. Viewing Branches
    • Task 15. Merging Commits Between Branches
    • Task 16. Rewriting History by Rebasing
    • Task 17. Deleting Branches
    • Task 18. Tagging Milestones
  • Working with a Team
    • Task 19. Adding and Removing Remotes
    • Task 20. Retrieving Remote Changes
    • Task 21. Retrieving Remote Changes, Part II
    • Task 22. Sending Changes to Remote
    • Task 23. Handling Remote Tags and Branches
  • Branches and Merging Revisited
    • Task 24. Handling Conflicts
    • Task 25. Handling Conflicts with a GUI
    • Task 26. Temporarily Hiding Changes
    • Task 27. Cherry-Picking Commits
    • Task 28. Controlling How You Replay Commits
    • Task 29. Moving Branches
  • Working with the Repository’s History excerpt
    • Task 30. Viewing the Log
    • Task 31. Filtering the Log Output
    • Task 32. Comparing Differences
    • Task 33. Generating Statistics About Changes
    • Task 34. Assigning Blame
  • Fixing Things
    • Task 35. Fixing Commits
    • Task 36. Reverting Commits
    • Task 37. Resetting Staged Changes and Commits
    • Task 38. Erasing Commits
    • Task 39. Finding Bugs with bisect
    • Task 40. Retrieving “Lost” Commits
  • Moving Beyond the Basics
    • Task 41. Exporting Your Repository
    • Task 42. Doing Some Git Housekeeping
    • Task 43. Syncing with Subversion
    • Task 44. Initializing Bare Repositories


Travis Swicegood is a professional programmer; owner of Domain51, a web and mobile development company in Lawrence, Kansas; and the author of Pragmatic Version Control Using Git, the first published book on Git. He’s passionate about open source development and is active in communities across several languages.