Getting Started About Version Control A Short History of Git Git Basics Installing Git First-Time Git Setup Getting Help Summary Git Basics Getting a Git Repository Recording Changes to the Repository Viewing the Commit History Undoing Things Working with Remotes Tagging Tips and Tricks Summary Git Branching What a Branch Is Basic Branching and Merging Branch Management Branching Workflows Remote Branches Rebasing Summary Git on the Server The Protocols Getting Git on a Server Generating Your SSH Public Key Setting Up the Server Public Access GitWeb Gitosis Gitolite Git Daemon Hosted Git Summary Distributed Git Distributed Workflows Contributing to a Project Maintaining a Project Summary Git Tools Revision Selection Interactive Staging Stashing Rewriting History Debugging with Git Submodules Subtree Merging Summary Customizing Git Git Configuration Git Attributes Git Hooks An Example Git-Enforced Policy Summary Git and Other Systems Git and Subversion Migrating to Git Summary Git Internals Plumbing and Porcelain Git Objects Git References Packfiles The Refspec Transfer Protocols Maintenance and Data Recovery Summary