Git User’s Manual (for version 1.5.3 or newer)



1. Repositories and Branches
1.1. How to get a git repository
1.2. How to check out a different version of a project
1.3. Understanding History: Commits
1.3.1. Understanding history: commits, parents, and reachability
1.3.2. Understanding history: History diagrams
1.3.3. Understanding history: What is a branch?
1.4. Manipulating branches
1.5. Examining an old version without creating a new branch
1.6. Examining branches from a remote repository
1.7. Naming branches, tags, and other references
1.8. Updating a repository with git fetch
1.9. Fetching branches from other repositories
2. Exploring git history
2.1. How to use bisect to find a regression
2.2. Naming commits
2.3. Creating tags
2.4. Browsing revisions
2.5. Generating diffs
2.6. Viewing old file versions
2.7. Examples
2.7.1. Counting the number of commits on a branch
2.7.2. Check whether two branches point at the same history
2.7.3. Find first tagged version including a given fix
2.7.4. Showing commits unique to a given branch
2.7.5. Creating a changelog and tarball for a software release
2.7.6. Finding commits referencing a file with given content
3. Developing with git
3.1. Telling git your name
3.2. Creating a new repository
3.3. How to make a commit
3.4. Creating good commit messages
3.5. Ignoring files
3.6. How to merge
3.7. Resolving a merge
3.7.1. Getting conflict-resolution help during a merge
3.8. Undoing a merge
3.9. Fast-forward merges
3.10. Fixing mistakes
3.10.1. Fixing a mistake with a new commit
3.10.2. Fixing a mistake by rewriting history
3.10.3. Checking out an old version of a file
3.10.4. Temporarily setting aside work in progress
3.11. Ensuring good performance
3.12. Ensuring reliability
3.12.1. Checking the repository for corruption
3.12.2. Recovering lost changes
4. Sharing development with others
4.1. Getting updates with git pull
4.2. Submitting patches to a project
4.3. Importing patches to a project
4.4. Public git repositories
4.4.1. Setting up a public repository
4.4.2. Exporting a git repository via the git protocol
4.4.3. Exporting a git repository via http
4.4.4. Pushing changes to a public repository
4.4.5. What to do when a push fails
4.4.6. Setting up a shared repository
4.4.7. Allowing web browsing of a repository
4.5. Examples
4.5.1. Maintaining topic branches for a Linux subsystem maintainer
5. Rewriting history and maintaining patch series
5.1. Creating the perfect patch series
5.2. Keeping a patch series up to date using git rebase
5.3. Rewriting a single commit
5.4. Reordering or selecting from a patch series
5.5. Other tools
5.6. Problems with rewriting history
5.7. Why bisecting merge commits can be harder than bisecting linear history
6. Advanced branch management
6.1. Fetching individual branches
6.2. git fetch and fast-forwards
6.3. Forcing git fetch to do non-fast-forward updates
6.4. Configuring remote branches
7. Git concepts
7.1. The Object Database
7.1.1. Commit Object
7.1.2. Tree Object
7.1.3. Blob Object
7.1.4. Trust
7.1.5. Tag Object
7.1.6. How git stores objects efficiently: pack files
7.1.7. Dangling objects
7.1.8. Recovering from repository corruption
7.2. The index
8. Submodules
8.1. Pitfalls with submodules
9. Low-level git operations
9.1. Object access and manipulation
9.2. The Workflow
9.2.1. working directory → index
9.2.2. index → object database
9.2.3. object database → index
9.2.4. index → working directory
9.2.5. Tying it all together
9.3. Examining the data
9.4. Merging multiple trees
9.5. Merging multiple trees, continued
10. Hacking git
10.1. Object storage format
10.2. A birds-eye view of Git’s source code
11. Git Glossary
A. Git Quick Reference
A.1. Creating a new repository
A.2. Managing branches
A.3. Exploring history
A.4. Making changes
A.5. Merging
A.6. Sharing your changes
A.7. Repository maintenance
B. Notes and todo list for this manual
n
Next Page
p
Previos Page
h
Book Home
u
Go Up One Level
?
Press ? for Help
esc
Hide Help
Your Ad Here