Track, branch, merge, and manage code revisions with Git, the free and open source distributed version control system. Through a series of step-by-step tutorials, this practical guide quickly takes you from Git fundamentals to advanced techniques, and provides friendly yet rigorous advice for navigating Git's many functions. You'll learn how to work with everything from small to very large projects with speed and efficiency.

In this third edition, authors Prem Kumar Ponuthorai and Jon Loeliger break down Git concepts using a modular approach. You'll start with the basics and fundamental philosophy of Git, followed by intermediate commands to help you efficiently supplement your daily development workflow. Finally, you'll learn advanced Git commands and concepts to understand how Git works under the hood.

  • Learn how to use Git for real-world development scenarios
  • Gain insight into Git's common use cases, initial tasks, and basic functions
  • Use the system for distributed version control
  • Learn how to manage merges, conflicts, patches, and diffs
  • Apply advanced techniques such as rebasing, hooks, and ways to handle submodules

Table of Contents

  1. Preface
    1. Who This book is For
    2. Essential know how’s
    3. New in this revision
    4. Navigating the Book
    5. Installing Git
    6. A Note on Inclusive Language
    7. Omissions
    8. Conventions Used in This Book
    9. Using Code Examples
    10. Safari® Books Online
    11. How to Contact Us
    12. Acknowledgments
    13. Attributions
  2. 1. Introduction to Git
    1. Git Components
    2. Git Characteristics
    3. The Git Command Line
    4. Quick Introduction to Using Git
    5. Preparing to work with Git
    6. Working with a local Repository
    7. Working with a shared Repository
    8. Configuration Files
    9. Summary
  3. 2. Foundational Concepts
    1. Repositories
    2. Git Object Store
    3. Index
    4. Content-Addressable Database
    5. Git Tracks Content
    6. Pathname Versus Content
    7. Packfiles
    8. Visualizing Git Object Store
    9. Git Internals: Concepts at Work
    10. Inside the .git Directory
    11. Blob Objects and Hashes
    12. Tree Object and Files
    13. A Note on Git’s Use of SHA1
    14. Tree Hierarchies
    15. Commit Objects
    16. Tag Objects
    17. Summary