作者簡介
作者:(美國)羅力格(Jon Loeliger)
羅力格,是一位自由職業的軟體工程師,致力於Linux、U-Boot和Git等開源項目。他曾在Linux World等諸多會議上公開講授Git,還為《Linux Magazine》撰寫過數篇關於Git的文章。
內容簡介
《Git版本控制管理(影印版)》Git可以支持幾乎無數種開發與合作的方法。它最早由LinilusTorvalds創建,用於管理Linux核心開發,現已成為分散式
版本控制的主流工具。但是Git的靈活性也意味著某些用戶無法發揮它的最大價值。《Git版本控制管理》提供了最高效的方法教程,其友好又嚴謹的建議有助於你隨心操控Git的各項功能。
媒體評論
這是一本應該隨身攜帶的書。
——Don Marti 編輯、記者以及會議主席
目錄
Preface
1.Introduction
Background
The Birth of Git
Precedents
Time Line
What's in a Name?
2.Installing Git
Using Linux Binary Distributions
Debian/Ubuntu
Other Binary Distributions
Obtaining a Source Release
Building and Installing
Installing Git on Windows
Installing the Cygwin Git Package
Installing Standalone Git (msysGit)
3.Getting Started
The Git Command Line
Quick Introduction to Using Git
Creating an Initial Repository
Adding a File to Your Repository
Configuring the Commit Author
Making Another Commit
Viewing Your Commits
Viewing Commit Differences
Removing and Renaming Files in Your Repository
Making a Copy of Your Repository
Configuration Files.
Configuring an Alias
Inquiry
4.Basic Git Concepts
Basic Concepts
Repositories
Git Object Types
Index
Content-Addressable Names
Git Tracks Content
Pathname Versus Content
Object Store Pictures
Git Concepts at Work
Inside the .git directory
Objects, Hashes, and Blobs
Files and Trees
A Note on Git's Use of SHA1
Tree Hierarchies
Commits
Tags
5.File Management and the Index
It's All About the Index
File Classifications in Git
Using git add
Some Notes on Using git commit
Using git commit ——all
Writing Commit Log Messages
Using git rm
Using git mv
A Note on Tracking Renames
The .gitignore File
A Detailed View of Git's Object Model and Files
6.Commits
Atomic Changesets
Identifying Commits
Absolute Commit Names
refs and symrefs
Relative Commit Names
Commit History
Viewing Old Commits
Commit Graphs
Commit Ranges
Finding Commits
Using git bisect
Using git blame
Using Pickaxe
7. Branches
Reasons for Using Branches
Branch Names
Dos and Don'ts in Branch Names
Using BrancheS
Creating Branches
Listing Branch Names
Viewing Branches
Checking Out Branches
A Basic Example of Checking Out a Branch
Checking Out When You Have Uncommitted Changes
Merging Changes into a Different Branch
Creating and Checking Out a New Branch
Detached HEAD Branches
Deleting Branches
8.Diffs
Forms of the git diff Command
Simple git diff Example
git diff and Commit Ranges
git diff with Path Limiting
Comparing How Subversion and Git Derive dills
9. Merges
Merge Examples
Preparing for a Merge
Merging Two Branches
A Merge with a Conflict
Working with Merge Conflicts
Locating Conflicted Files
Inspecting Conflicts
How Git Keeps Track of Conflicts
Finishing Up a Conflict Resolution
Aborting or Restarting a Merge
Merge Strategies
Degenerate Merges
Normal Merges
Specialty Merges
Merge Drivers
How Git .Thinks About Merges
Merges and Git's Object Model
Squash Merges
Why Not Just Merge Each Change One by One?
10. Altering Commits
Caution About Altering History
Using git reset
Using git cherry-pick
Using git revert
reset, revert, and checkout
Changing the Top Commit
Rebasing Commits
Using git rebase -i
rebase Versus merge
11. Remote Repositories
Repository Concepts
Bare and Development Repositories
Repository Clones
Remotes
Tracking Branches
Referencing Other Repositories
Referring to Remote Repositories
The refspec
Example Using Remote Repositories
Creating an Authoritative Repository
Make Your Own origin Remote
Developing in Your Repository
Pushing Your Changes
Adding a New Developer
Getting Repository Updates
Remote Repository Operations in Pictures
Cloning a Repository
Alternate Histories
Non-Fast-Forward Pushes
Fetching the Alternate History
Merging Histories
Merge Conflicts
Pushing a Merged History
Adding and Deleting Remote Branches
13.Patches
14.Hooks
15.Combining Projects
16.Using Git with Subversion Repositories
lndex