An edition of Pro Git (2009)

Pro Git

2nd edition
  • 4.1 (10 ratings)
  • 33 Want to read
  • 6 Currently reading
  • 15 Have read

My Reading Lists:

Create a new list

  • 4.1 (10 ratings)
  • 33 Want to read
  • 6 Currently reading
  • 15 Have read


Download Options

Buy this book

Last edited by Drini
September 12, 2025 | History
An edition of Pro Git (2009)

Pro Git

2nd edition
  • 4.1 (10 ratings)
  • 33 Want to read
  • 6 Currently reading
  • 15 Have read

Pro Git (Second Edition) is your fully-updated guide to Git and its usage in the modern world. Git has come a long way since it was first developed by Linus Torvalds for Linux kernel development. It has taken the open source world by storm since its inception in 2005, and this book teaches you how to use it like a pro. Effective and well-implemented version control is a necessity for successful web projects, whether large or small. With this book you’ll learn how to master the world of distributed version workflow, use the distributed features of Git to the full, and extend Git to meet your every need. Written by Git pros Scott Chacon and Ben Straub, Pro Git (Second Edition) builds on the hugely successful first edition, and is now fully updated for Git version 2.0, as well as including an indispensable chapter on GitHub. It’s the best book for all your Git needs.

Publish Date
Publisher
Apress
Language
English
Pages
456

Buy this book

Previews available in: English Spanish

Edition Availability
Cover of: Pro Git
Pro Git
November 2019, git-scm.com
ebook
Cover of: Pro Git
Pro Git
2017, CreateSpace Independent Publishing Platform
in English
Cover of: Pro Git
Pro Git
2015, Apress
E-book in English - 2nd edition
Cover of: Pro Git
Pro Git
2014, Apress
Web Book in English
Cover of: Pro Git
Pro Git: Everything you need to know about Git
2014, Apress
Paperback in English - Second edition
Cover of: Pro Git
Pro Git
2014, Apress
E-book in Spanish - 2nd ed.
Cover of: Pro Git
Pro Git
May 21, 2010, Springer
perfect paperback
Cover of: Pro Git
Pro Git
2009, Springer London, Limited
in English
Cover of: Pro Git
Pro Git
2009, Apress
Paperback

Add another edition?

Book Details


Table of Contents

Preface by Scott Chacon
Page iii
Preface by Ben Straub
Page v
Dedications
Page vii
Contributors
Page ix
Introduction
Page xiii
Chapter 1. Getting Started
Page 27
About Version Control
Page 27
Local Version Control Systems
Page 27
Centralized Version Control Systems
Page 28
Distributed Version Control Systems
Page 29
A Short History of Git
Page 31
Git Basics
Page 31
Snapshots, Not Differences
Page 32
Nearly Every Operation Is Local
Page 33
Git Has Integrity
Page 33
Git Generally Only Adds Data
Page 34
The Three States
Page 34
The Command Line
Page 36
Installing Git
Page 36
Installing on Linux
Page 36
Installing on Mac
Page 37
Installing on Windows
Page 38
Installing from Source
Page 38
First-Time Git Setup
Page 39
Your Identity
Page 39
Your Editor
Page 40
Checking Your Settings
Page 40
Getting Help
Page 41
Summary
Page 41
Chapter 2. Git Basics
Page 43
Getting a Git Repository
Page 43
Initializing a Repository in an Existing Directory
Page 43
Cloning an Existing Repository
Page 44
Recording Changes to the Repository
Page 45
Checking the Status of Your Files
Page 46
Tracking New Files
Page 47
Staging Modified Files
Page 47
Short Status
Page 49
Ignoring Files
Page 50
Viewing Your Staged and Unstaged Changes
Page 51
Committing Your Changes
Page 54
Skipping the Staging Area
Page 55
Removing Files
Page 56
Moving Files
Page 57
Viewing the Commit History
Page 58
Limiting Log Output
Page 63
Undoing Things
Page 65
Unstaging a Staged File
Page 66
Unmodifying a Modified File
Page 67
Working with Remotes
Page 68
Showing Your Remotes
Page 69
Adding Remote Repositories
Page 70
Fetching and Pulling from Your Remotes
Page 71
Pushing to Your Remotes
Page 71
Inspecting a Remote
Page 72
Removing and Renaming Remotes
Page 73
Tagging
Page 73
Listing Your Tags
Page 74
Creating Tags
Page 74
Annotated Tags
Page 75
Lightweight Tags
Page 75
Tagging Later
Page 76
Sharing Tags
Page 77
Checking out Tags
Page 78
Git Aliases
Page 78
Summary
Page 79
Chapter 3. Git Branching
Page 81
Branches in a Nutshell
Page 81
Creating a New Branch
Page 84
Switching Branches
Page 85
Basic Branching and Merging
Page 89
Basic Branching
Page 89
Basic Merging
Page 94
Basic Merge Conflicts
Page 96
Branch Management
Page 99
Branching Workflows
Page 100
Long-Running Branches
Page 100
Topic Branches
Page 101
Remote Branches
Page 103
Pushing
Page 109
Tracking Branches
Page 111
Pulling
Page 113
Deleting Remote Branches
Page 113
Rebasing
Page 113
The Basic Rebase
Page 114
More Interesting Rebases
Page 116
The Perils of Rebasing
Page 119
Rebase When You Rebase
Page 122
Rebase vs. Merge
Page 123
Summary
Page 124
Chapter 4. Git on the Server
Page 125
The Protocols
Page 126
Local Protocol
Page 126
The HTTP Protocols
Page 127
The SSH Protocol
Page 130
The Git Protocol
Page 130
Getting Git on a Server
Page 131
Putting the Bare Repository on a Server
Page 132
Small Setups
Page 133
Generating Your SSH Public Key
Page 134
Setting Up the Server
Page 135
Git Daemon
Page 138
Smart HTTP
Page 139
GitWeb
Page 141
GitLab
Page 144
Installation
Page 144
Administration
Page 145
Basic Usage
Page 148
Working Together
Page 148
Third Party Hosted Options
Page 149
Summary
Page 149
Chapter 5. Distributed Git
Page 151
Distributed Workflows
Page 151
Centralized Workflow
Page 151
Integration-Manager Workflow
Page 152
Dictator and Lieutenants Workflow
Page 153
Workflows Summary
Page 154
Contributing to a Project
Page 155
Commit Guidelines
Page 155
Private Small Team
Page 157
Private Managed Team
Page 164
Forked Public Project
Page 170
Public Project over E-Mail
Page 174
Summary
Page 177
Maintaining a Project
Page 177
Working in Topic Branches
Page 178
Applying Patches from E-mail
Page 178
Checking Out Remote Branches
Page 182
Determining What Is Introduced
Page 183
Integrating Contributed Work
Page 184
Tagging Your Releases
Page 191
Generating a Build Number
Page 192
Preparing a Release
Page 193
The Shortlog
Page 193
Summary
Page 194
Chapter 6. GitHub
Page 195
Account Setup and Configuration
Page 195
SSH Access
Page 196
Your Avatar
Page 198
Your Email Addresses
Page 199
Two Factor Authentication
Page 200
Contributing to a Project
Page 201
Forking Projects
Page 201
The GitHub Flow
Page 202
Advanced Pull Requests
Page 210
Markdown
Page 215
Maintaining a Project
Page 220
Creating a New Repository
Page 220
Adding Collaborators
Page 222
Managing Pull Requests
Page 224
Mentions and Notifications
Page 229
Special Files
Page 233
README
Page 233
CONTRIBUTING
Page 234
Project Administration
Page 234
Managing an Organization
Page 236
Organization Basics
Page 236
Teams
Page 237
Audit Log
Page 239
Scripting GitHub
Page 240
Hooks
Page 241
The GitHub API
Page 245
Basic Usage
Page 246
Commenting on an Issue
Page 247
Changing the Status of a Pull Request
Page 248
Octokit
Page 250
Summary
Page 251
Chapter 7. Git Tools
Page 253
Revision Selection
Page 253
Single Revisions
Page 253
Short SHA
Page 253
Branch References
Page 255
RefLog Shortnames
Page 256
Ancestry References
Page 257
Commit Ranges
Page 259
Interactive Staging
Page 262
Staging and Unstaging Files
Page 262
Staging Patches
Page 265
Stashing and Cleaning
Page 266
Stashing Your Work
Page 266
Creative Stashing
Page 269
Creating a Branch from a Stash
Page 270
Cleaning Your Working Directory
Page 271
Signing Your Work
Page 272
GPG Introduction
Page 273
Signing Tags
Page 273
Verifying Tags
Page 274
Signing Commits
Page 275
Everyone Must Sign
Page 277
Searching
Page 277
Git Grep
Page 277
Git Log Searching
Page 279
Rewriting History
Page 280
Changing the Last Commit
Page 281
Changing Multiple Commit Messages
Page 281
Reordering Commits
Page 284
Squashing Commits
Page 284
Splitting a Commit
Page 286
The Nuclear Option: filter-branch
Page 287
Reset Demystified
Page 289
The Three Trees
Page 289
The Workflow
Page 291
The Role of Reset
Page 297
Reset With a Path
Page 302
Squashing
Page 305
Check It Out
Page 308
Summary
Page 310
Advanced Merging
Page 311
Merge Conflicts
Page 311
Undoing Merges
Page 323
Other Types of Merges
Page 326
Rerere
Page 331
Debugging with Git
Page 337
File Annotation
Page 337
Binary Search
Page 339
Submodules
Page 341
Starting with Submodules
Page 341
Cloning a Project with Submodules
Page 343
Working on a Project with Submodules
Page 345
Submodule Tips
Page 356
Issues with Submodules
Page 358
Bundling
Page 360
Replace
Page 364
Credential Storage
Page 373
Under the Hood
Page 374
A Custom Credential Cache
Page 377
Summary
Page 379
Chapter 8. Customizing Git
Page 381
Git Configuration
Page 381
Basic Client Configuration
Page 382
Colors in Git
Page 385
External Merge and Diff Tools
Page 386
Formatting and Whitespace
Page 390
Server Configuration
Page 392
Git Attributes
Page 393
Binary Files
Page 393
Keyword Expansion
Page 396
Exporting Your Repository
Page 399
Merge Strategies
Page 400
Git Hooks
Page 401
Installing a Hook
Page 401
Client-Side Hooks
Page 402
Server-Side Hooks
Page 404
An Example Git-Enforced Policy
Page 405
Server-Side Hook
Page 405
Client-Side Hooks
Page 411
Summary
Page 415
Chapter 9. Git and Other Systems
Page 417
Git as a Client
Page 417
Git and Subversion
Page 417
Git and Mercurial
Page 429
Git and Perforce
Page 438
Git and TFS
Page 454
Migrating to Git
Page 463
Subversion
Page 464
Mercurial
Page 466
Perforce
Page 468
TFS
Page 471
A Custom Importer
Page 472
Summary
Page 479
Chapter 10. Git Internals
Page 481
Plumbing and Porcelain
Page 481
Git Objects
Page 482
Tree Objects
Page 485
Commit Objects
Page 488
Object Storage
Page 491
Git References
Page 493
The HEAD
Page 494
Tags
Page 495
Remotes
Page 497
Packfiles
Page 497
The Refspec
Page 500
Pushing Refspecs
Page 503
Deleting References
Page 503
Transfer Protocols
Page 504
The Dumb Protocol
Page 504
The Smart Protocol
Page 506
Protocols Summary
Page 509
Maintenance and Data Recovery
Page 510
Maintenance
Page 510
Data Recovery
Page 511
Removing Objects
Page 514
Environment Variables
Page 518
Global Behavior
Page 518
Repository Locations
Page 518
Pathspecs
Page 519
Committing
Page 519
Networking
Page 520
Diffing and Merging
Page 520
Debugging
Page 521
Miscellaneous
Page 523
Summary
Page 523
Git in Other Environments
Page 525
Embedding Git in Your Applications
Page 541
Git Commands
Page 553
Index
Page 571

Edition Notes

On cover: "Everything you need to know about Git".

Published in
New York, New York, United States of America, Berkeley, California, United States of America

Classifications

Dewey Decimal Class
004
Library of Congress
QA75.5-76.95

Contributors

Prologue
Ben Straub

The Physical Object

Format
E-book
Pagination
XXI, 456 p. 208 illus :
Number of pages
456

Edition Identifiers

Open Library
OL26422503M
Internet Archive
progit-en
ISBN 10
1484200764
ISBN 13
9781484200766
OCLC/WorldCat
899000035

Work Identifiers

Work ID
OL16310859W

Work Description

Pro Git is your fully-updated guide to Git and its usage in the modern world. Git has come a long way since it was first developed by Linus Torvalds for Linux kernel development. It has taken the open source world by storm since its inception in 2005, and this book teaches you how to use it like a pro.

Effective and well-implemented version control is a necessity for successful web projects, whether large or small. With this book you’ll learn how to master the world of distributed version workflow, use the distributed features of Git to the full, and extend Git to meet your every need.

Links outside Open Library

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON / OPDS | Wikipedia citation
September 12, 2025 Edited by Drini Add TOC from Tocky
December 20, 2023 Edited by ImportBot import existing book
November 16, 2020 Edited by MARC Bot import existing book
November 17, 2019 Edited by dcapillae Moved edition to primary work
January 31, 2018 Created by ImportBot Imported from Internet Archive item record