Pro Git.
Main Author: | |
---|---|
Other Authors: | |
Format: | eBook |
Language: | English |
Published: |
Berkeley, CA :
Apress L. P.,
2014.
|
Edition: | 2nd ed. |
Subjects: | |
Online Access: | Click to View |
Table of Contents:
- Intro
- Contents at a Glance
- Contents
- About the Authors
- Preface by Scott Chacon
- Preface by Ben Straub
- Chapter 1: Getting Started
- About Version Control
- Local Version Control Systems
- Centralized Version Control Systems
- Distributed Version Control Systems
- A Short History of Git
- Git Basics
- Snapshots, Not Differences
- Nearly Every Operation Is Local
- Git Has Integrity
- Git Generally Only Adds Data
- The Three States
- The Command Line
- Installing Git
- Installing on Linux
- Installing on Mac
- Installing on Windows
- First-Time Git Setup
- Your Identity
- Your Editor
- Checking Your Settings
- Getting Help
- Summary
- Chapter 2: Git Basics
- Getting a Git Repository
- Initializing a Repository in an Existing Directory
- Cloning an Existing Repository
- Recording Changes to the Repository
- Checking the Status of Your Files
- Tracking New Files
- Staging Modified Files
- Short Status
- Ignoring Files
- Viewing Your Staged and Unstaged Changes
- Committing Your Changes
- Skipping the Staging Area
- Removing Files
- Moving Files
- Viewing the Commit History
- Limiting Log Output
- Undoing Things
- Unstaging a Staged File
- Unmodifying a Modified File
- Working with Remotes
- Showing Your Remotes
- Adding Remote Repositories
- Fetching and Pulling from Your Remotes
- Pushing to Your Remotes
- Inspecting a Remote
- Removing and Renaming Remotes
- Tagging
- Listing Your Tags
- Creating Tags
- Annotated Tags
- Lightweight Tags
- Tagging Later
- Sharing Tags
- Git Aliases
- Summary
- Chapter 3: Git Branching
- Branching in a Nutshell
- Creating a New Branch
- Switching Branches
- Basic Branching and Merging
- Basic Branching
- Basic Merging
- Basic Merge Conflicts
- Branch Management
- Branching Workflows
- Long-Running Branches
- Topic Branches.
- Remote Branches
- Pushing
- Tracking Branches
- Pulling
- Deleting Remote Branches
- Rebasing
- The Basic Rebase
- More Interesting Rebases
- The Perils of Rebasing
- Rebase When You Rebase
- Rebase vs. Merge
- Summary
- Chapter 4: Git on the Server
- The Protocols
- Local Protocol
- The Pros
- The Cons
- The HTTP Protocols
- Smart HTTP
- Dumb HTTP
- The Pros
- The Cons
- The SSH Protocol
- The Pros
- The Cons
- The Git Protocol
- The Pros
- The Cons
- Getting Git on a Server
- Putting the Bare Repository on a Server
- Small Setups
- SSH Access
- Generating Your SSH Public Key
- Setting Up the Server
- Git Daemon
- Smart HTTP
- GitWeb
- GitLab
- Installation
- Administration
- Users
- Groups
- Projects
- Hooks
- Basic Usage
- Working Together
- Third Party Hosted Options
- Summary
- Chapter 5: Distributed Git
- Distributed Workflows
- Centralized Workflow
- Integration-Manager Workflow
- Dictator and Lieutenants Workflow
- Workf lows Summary
- Contributing to a Project
- Commit Guidelines
- Private Small Team
- Private Managed Team
- Public Project, Fork
- Public Project, E-Mail
- Summary
- Maintaining a Project
- Working in Topic Branches
- Applying Patches from E-mail
- Applying a Patch with apply
- Applying a Patch with am
- Checking Out Remote Branches
- Determining What Is Introduced
- Integrating Contributed Work
- Merging Workflows
- Large-Merging Workflows
- Rebasing and Cherry Picking Workflows
- Rerere
- Tagging Your Releases
- Generating a Build Number
- Preparing a Release
- The Shortlog
- Summary
- Chapter 6: Github
- Account Setup and Configuration
- SSH Access
- Your Avatar
- Your Email Addresses
- Two-Factor Authentication
- Contributing to a Project
- Forking Projects
- The GitHub Flow
- Creating a Pull Request
- Iterating on a Pull Request.
- Advanced Pull Requests
- Pull Requests as Patches
- Keeping up with Upstream
- References
- Markdown
- GitHub Flavored Markdown
- Task Lists
- Code Snippets
- Quoting
- Emoji
- Images
- Maintaining a Project
- Creating a New Repository
- Adding Collaborators
- Managing Pull Requests
- Email Notifications
- Collaborating on the Pull Request
- Pull Request Refs
- Pull Requests on Pull Requests
- Mentions and Notifications
- The Notifications Page
- Web Notifications
- Email Notifications
- Special Files
- README
- CONTRIBUTING
- Project Administration
- Changing the Default Branch
- Transferring a Project
- Managing an Organization
- Organization Basics
- Teams
- Audit Log
- Scripting GitHub
- Hooks
- Services
- Hooks
- The GitHub API
- Basic Usage
- Commenting on an Issue
- Changing the Status of a Pull Request
- Octokit
- Summary
- Chapter 7: Git Tools
- Revision Selection
- Single Revisions
- Short SHA
- Branch References
- Ref Log Shortnames
- Ancestry References
- Commit Ranges
- Double Dot
- Multiple Points
- Triple Dot
- Interactive Staging
- Staging and Unstaging Files
- Staging Patches
- Stashing and Cleaning
- Stashing Your Work
- Creative Stashing
- Unapplying a Stash
- Creating a Branch from a Stash
- Cleaning Your Working Directory
- Signing Your Work
- GPG Introduction
- Signing Tags
- Verifying Tags
- Signing Commits
- Everyone Must Sign
- Searching
- Git Grep
- Git Log Searching
- Line Log Search
- Rewriting History
- Changing the Last Commit
- Changing Multiple Commit Messages
- Reordering Commits
- Squashing a Commit
- Splitting a Commit
- The Nuclear Option: filter-branch
- Removing a File from Every Commit
- Making a Subdirectory the New Root
- Changing E-Mail Addresses Globally
- Reset Demystified
- The Three Trees
- The HEAD
- The Index.
- The Working Directory
- The Workflow
- The Role of Reset
- Step 1: Move HEAD
- Step 2: Updating the Index (
- mixed)
- Step 3: Updating the Working Directory (
- hard)
- Recap
- Reset with a Path
- Squashing
- Check It Out
- Without Paths
- With Paths
- Summary
- Advanced Merging
- Merge Conflicts
- Aborting a Merge
- Ignoring Whitespace
- Manual File Re-merging
- Checking Out Conflicts
- Merge Log
- Combined Diff Format
- Undoing Merges
- Fix the References
- Reverse the Commit
- Other Types of Merges
- Our or Theirs Preference
- Subtree Merging
- Rerere
- Debugging with Git
- File Annotation
- Binary Search
- Submodules
- Starting with Submodules
- Cloning a Project with Submodules
- Working on a Project with Submodules
- Pulling in Upstream Changes
- Working on a Submodule
- Publishing Submodule Changes
- Merging Submodule Changes
- Submodule Tips
- Submodule Foreach
- Useful Aliases
- Issues with Submodules
- Aborting
- Bundling
- Replace
- Credential Storage
- Under the Hood
- A Custom Credential Cache
- Summary
- Chapter 8: Customizing Git
- Git Configuration
- Basic Client Configuration
- core.editor
- commit.template
- core.pager
- user.signingkey
- core.excludesfile
- help.autocorrect
- Colors in Git
- color.ui
- color.*
- External Merge and Diff Tools
- Formatting and Whitespace
- core.autocrlf
- core.whitespace
- Server Configuration
- receive.fsckObjects
- receive.denyNonFastForwards
- receive.denyDeletes
- Git Attributes
- Binary Files
- Identifying Binary Files
- Diffing Binary Files
- Keyword Expansion
- Exporting Your Repository
- export-ignore
- export-subst
- Merge Strategies
- Git Hooks
- Installing a Hook
- Client-Side Hooks
- Committing-Workflow Hooks
- E-mail Workflow Hooks
- Other Client Hooks
- Server-Side Hooks
- pre-receive
- update.
- post-receive
- An Example Git-Enforced Policy
- Server-Side Hook
- Enforcing a Specific Commit-Message Format
- Enforcing a User-Based ACL System
- Testing It Out
- Client-Side Hooks
- Summary
- Chapter 9: Git and Other Systems
- Git as a Client
- Git and Subversion
- git svn
- Setting Up
- Getting Started
- Committing Back to Subversion
- Pulling in New Changes
- Git Branching Issues
- Subversion Branching
- Creating a New SVN Branch
- Switching Active Branches
- Subversion Commands
- SVN Style History
- SVN Annotation
- SVN Server Information
- Ignoring What Subversion Ignores
- Git-Svn Summary
- Git and Mercurial
- Getting Started
- Workflow
- Branches and Bookmarks
- Mercurial Summary
- Git and Perforce
- Git Fusion
- Setting Up
- Fusion Configuration
- Workflow
- Git-Fusion Summary
- Git-p4
- Setting Up
- Getting Started
- Workflow
- Branching
- Git and Perforce Summary
- Git and TFS
- Which Tool?
- Getting Started: git-tf
- Getting Started: git-tfs
- Git-tf[s] Workflow
- Workflow: git-tf
- Workflow: git-tfs
- Git and TFS Summary
- Migrating to Git
- Subversion
- Mercurial
- Perforce
- Perforce Git Fusion
- A Custom Importer
- Summary
- Chapter 10: Git Internals
- Plumbing and Porcelain
- Git Objects
- Tree Objects
- Commit Objects
- Object Storage
- Git References
- The HEAD
- Tags
- Remotes
- Packfiles
- The Refspec
- Pushing Refspecs
- Deleting References
- Transfer Protocols
- The Dumb Protocol
- The Smart Protocol
- Uploading Data
- SSH
- HTTP(S)
- Downloading Data
- SSH
- HTTP(S)
- Protocols Summary
- Maintenance and Data Recovery
- Maintenance
- Data Recovery
- Removing Objects
- Environment Variables
- Global Behavior
- Repository Locations
- Pathspecs
- Committing
- Networking
- Diffing and Merging
- Debugging
- Miscellaneous
- Summary.
- Appendix A: Git in Other Environments.