没有合适的资源?快使用搜索试试~ 我知道了~
最新Git经典书籍《Pro Git》E文
需积分: 10 118 下载量 11 浏览量
2010-03-25
18:01:56
上传
评论
收藏 4.16MB PDF 举报
温馨提示
试读
259页
新出了Git的一个介绍性文档Pro Git 英文版。大家可以和中文版对照来看。^_^
资源推荐
资源详情
资源评论
Pro Git
Scott Chacon
*
2010-03-25
*
This is the PDF file for the Pro Git book contents. It is licensed under the Creative Commons Attribution-
Non Commercial-Share Alike 3.0 license. I hope you enjoy it, I hope it helps you learn Git, and I hope
you’ll support Apress and me by purchasing a print copy of the book at Amazon: http://tinyurl.com/
amazonprogit
Contents
1 Getting Started 1
1.1 About Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Local Version Control Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Centralized Version Control Systems . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Distributed Version Control Systems . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 A Short History of Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Git Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Snapshots, Not Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Nearly Every Operation Is Local . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Git Has Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.4 Git Generally Only Adds Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.5 The Three States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Installing Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Installing from Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 Installing on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.3 Installing on Mac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.4 Installing on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 First-Time Git Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Your Identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.2 Your Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.3 Your Diff Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.4 Checking Your Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Git Basics 13
2.1 Getting a Git Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Initializing a Repository in an Existing Directory . . . . . . . . . . . . . . . . . 13
2.1.2 Cloning an Existing Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Recording Changes to the Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Checking the Status of Your Files . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Tracking New Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Staging Modified Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 Ignoring Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.5 Viewing Your Staged and Unstaged Changes . . . . . . . . . . . . . . . . . . . 18
2.2.6 Committing Your Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
iii
2.2.7 Skipping the Staging Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8 Removing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.9 Moving Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Viewing the Commit History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1 Limiting Log Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 Using a GUI to Visualize History . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Undoing Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1 Changing Your Last Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 Unstaging a Staged File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3 Unmodifying a Modified File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 Working with Remotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.1 Showing Your Remotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.2 Adding Remote Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.3 Fetching and Pulling from Your Remotes . . . . . . . . . . . . . . . . . . . . . . 34
2.5.4 Pushing to Your Remotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.5 Inspecting a Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.6 Removing and Renaming Remotes . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6 Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.1 Listing Your Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.2 Creating Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.3 Annotated Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.4 Signed Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.5 Lightweight Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.6 Verifying Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.7 Tagging Later . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.8 Sharing Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7 Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.1 Auto-Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.2 Git Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3 Git Branching 45
3.1 What a Branch Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Basic Branching and Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.1 Basic Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.2 Basic Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.3 Basic Merge Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Branch Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4 Branching Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.1 Long-Running Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.2 Topic Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5 Remote Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5.1 Pushing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5.2 Tracking Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5.3 Deleting Remote Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6 Rebasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
iv
3.6.1 The Basic Rebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6.2 More Interesting Rebases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.3 The Perils of Rebasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4 Git on the Server 73
4.1 The Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.1 Local Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
The Pros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
The Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.1.2 The SSH Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
The Pros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
The Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.1.3 The Git Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
The Pros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
The Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.1.4 The HTTP/S Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
The Pros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
The Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2 Getting Git on a Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.2.1 Putting the Bare Repository on a Server . . . . . . . . . . . . . . . . . . . . . . 78
4.2.2 Small Setups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
SSH Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.3 Generating Your SSH Public Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.4 Setting Up the Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.5 Public Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.6 GitWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.7 Gitosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.8 Gitolite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.8.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.8.2 Customising the Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8.3 Config File and Access Control Rules . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8.4 Advanced Access Control with “deny” rules . . . . . . . . . . . . . . . . . . . . 93
4.8.5 Restricting pushes by files changed . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.8.6 Personal Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.8.7 “Wildcard” repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.8.8 Other Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.9 Git Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.10Hosted Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.10.1GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.10.2Setting Up a User Account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.10.3Creating a New Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.10.4Importing from Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.10.5Adding Collaborators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.10.6Your Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.10.7Forking Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
v
剩余258页未读,继续阅读
资源评论
acus009
- 粉丝: 6
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功