![]()
Git Version Control Cookbook
Table of Contents
Git Version Control Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Navigating Git
Introduction
Git's objects
Getting ready
How to do it...
The commit object
The tree object
The blob object
The branch
The tag object
How it works...
There's more...
See also
The three stages
Getting ready
How to do itâŠ
How it worksâŠ
See also
Viewing the DAG
Getting ready
How to do it...
How it works...
See also
Extracting fixed issues
Getting ready
How to do it...
How it works...
There's more...
Getting a list of the changed files
Getting ready
How to do it...
How it works...
There's more...
See also
Viewing history with Gitk
Getting ready
How to do it...
How it works...
There's more...
Finding commits in history
Getting ready
How to do it...
How it works...
There's more...
Searching through history code
Getting ready
How to do it...
How it works...
There's more...
2. Configuration
Configuration targets
Getting ready
How to do it...
How it works...
There's more...
Querying the existing configuration
Getting ready
How to do it...
How it works...
There's more...
Templates
Getting ready
How to do it...
How it works...
A .git directory template
Getting ready
How to do it...
How it works...
See also
A few configuration examples
Getting ready
How to do it...
Rebase and merge setup
Expiry of objects
Autocorrect
How it works...
There's more...
Git aliases
Getting ready
How to do it...
How it works...
There's more...
The refspec exemplified
Getting ready
How to do it...
How it works...
3. Branching, Merging, and Options
Introduction
Managing your local branches
Getting ready
How to do itâŠ
How it worksâŠ
There's more...
Branches with remotes
Getting ready
How to do itâŠ
There's more...
Forcing a merge commit
Getting ready
How to do it...
There's moreâŠ
Using git rerere to merge known conflicts
How to do itâŠ
There's more...
The difference between branches
Getting ready
How to do itâŠ
There's moreâŠ
4. Rebase Regularly and Interactively, and Other Use Cases
Introduction
Rebasing commits to another branch
Getting ready
How to do itâŠ
How it works
Continuing a rebase with merge conflicts
How to do it
How it works
There's moreâŠ
Rebasing selective commits interactively
Getting ready
How to do it
There's moreâŠ
Squashing commits using an interactive rebase
Getting ready
How to do it...
There's moreâŠ
Changing the author of commits using a rebase
Getting ready
How to do it...
How it works...
Auto-squashing commits
Getting ready
How to do it...
There's moreâŠ
5. Storing Additional Information in Your Repository
Introduction
Adding your first Git note
Getting ready
How to do itâŠ
There's more...
Separating notes by category
Getting ready
How to do it...
How it works...
Retrieving notes from the remote repository
Getting ready
How to do it...
How it works...
Pushing notes to a remote repository
How to do it...
There's more...
Tagging commits in the repository
Getting ready
How to do it...
There's more...
6. Extracting Data from the Repository
Introduction
Extracting the top contributor
Getting ready
How to do it...
There's more...
Finding bottlenecks in the source tree
Getting ready
How to do it...
There's more...
Grepping the commit messages
Getting ready
How to do it...
The contents of the releases
How to do it...
How it works...
7. Enhancing Your Daily Work with Git Hooks, Aliases, and Scripts
Introduction
Using a branch description in the commit message
Getting ready
How to do it...
Creating a dynamic commit message template
Getting ready
How to do it...
There's more...
Using external information in the commit message
Getting ready
How to do it...
Preventing the push of specific commits
Getting ready
How to do it...
There's more...
Configuring and using Git aliases
How to do it...
How it works...
Configuring and using Git scripts
How to do it...
Setting up and using a commit ...