《精通Git 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)斯科特·查康,本·斯特劳布
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115463067
  • 页数:401 页
图书介绍:Git仅用了几年时间就一跃成为了几乎一统商业及开源领域的版本控制系统。本书全面介绍Git进行版本管理的基础和进阶知识。全书共10章,内容由浅入深,展现了普通程序员和项目经理如何有效利用Git提高工作效率,掌握分支概念,灵活地将Git用于服务器和分布式工作流,如何将开发项目迁移到Git,以及如何高效利用GitHub。

第1章 入门 1

1.1关于版本控制 1

1.1.1本地版本控制系统 1

1.1.2集中式版本控制系统 2

1.1.3分布式版本控制系统 3

1.2 Git简史 4

1.3 Git基础 4

1.3.1快照,而非差异 4

1.3.2几乎所有操作都在本地执行 5

1.3.3 Git的完整性 6

1.3.4 Git通常只增加数据 6

1.3.5三种状态 7

1.4命令行 8

1.5安装Git 8

1.5.1 Linux上的安装方法 8

1.5.2 Mac上的安装方法 8

1.5.3 Windows上的安装方法 9

1.5.4从源码安装 9

1.6 Git的首次配置 10

1.6.1用户身份 11

1.6.2个人编辑器 11

1.6.3检查个人设置 12

1.7获取帮助 12

1.8小结 12

第2章Git基础 13

2.1获取Git仓库 13

2.1.1在现有目录中初始化Git仓库 13

2.1.2克隆现有仓库 14

2.2在Git仓库中记录变更 14

2.2.1查看当前文件状态 15

2.2.2跟踪新文件 16

2.2.3暂存已修改的文件 16

2.2.4显示更简洁的状态信息 18

2.2.5忽略文件 18

2.2.6查看已暂存和未暂存的变更 19

2.2.7提交变更 21

2.2.8跳过暂存区 22

2.2.9移除文件 23

2.2.10移动文件 24

2.3查看提交历史 25

2.4撤销操作 30

2.4.1撤销已暂存的文件 30

2.4.2撤销对文件的修改 31

2.5远程仓库的使用 32

2.5.1显示远程仓库 32

2.5.2添加远程仓库 33

2.5.3从远程仓库获取和拉取数据 34

2.5.4将数据推送到远程仓库 34

2.5.5检查远程仓库 35

2.5.6删除和重命名远程仓库 36

2.6标记 36

2.6.1列举标签 36

2.6.2创建标签 37

2.6.3注释标签 37

2.6.4轻量标签 38

2.6.5补加标签 38

2.6.6共享标签 39

2.6.7检出标签 39

2.7 Git别名 40

2.8小结 41

第3章Git分支机制 42

3.1分支机制简述 42

3.1.1创建新分支 44

3.1.2切换分支 45

3.2基本的分支与合并操作 48

3.2.1基本的分支操作 48

3.2.2基本的合并操作 52

3.2.3基本的合并冲突处理 53

3.3分支管理 55

3.4与分支有关的工作流 56

3.4.1长期分支 57

3.4.2主题分支 58

3.5远程分支 59

3.5.1推送 63

3.5.2跟踪分支 64

3.5.3拉取 66

3.5.4删除远程分支 66

3.6变基 66

3.6.1基本的变基操作 66

3.6.2更有趣的变基操作 69

3.6.3变基操作的潜在危害 71

3.6.4只在需要的时候执行变基操作 74

3.6.5变基操作与合并操作的对比 75

3.7小结 75

第4章Git服务器 76

4.1协议 76

4.1.1本地协议 76

4.1.2 HTTP协议 78

4.1.3 SSH协议 79

4.1.4 Git协议 80

4.2在服务器上搭建Git 80

4.2.1将裸仓库放置在服务器上 81

4.2.2小型团队配置 82

4.3生成个人的SSH公钥 83

4.4设置服务器 84

4.5 Git守护进程 85

4.6智能HTTP 87

4.7 GitWeb 88

4.8 GitLab 90

4.8.1安装 90

4.8.2管理 91

4.8.3基本用法 93

4.8.4协作 93

4.9第三方托管选择 94

4.10小结 94

第5章 分布式Git 95

5.1分布式工作流 95

5.1.1集中式工作流 95

5.1.2集成管理者工作流 96

5.1.3司令官与副官工作流 97

5.1.4工作流小结 97

5.2为项目做贡献 98

5.2.1提交准则 98

5.2.2私有小型团队 100

5.2.3私有管理团队 105

5.2.4派生的公开项目 110

5.2.5通过电子邮件接受补丁的公开项目 113

5.2.6小结 115

5.3维护项目 115

5.3.1使用主题分支 115

5.3.2应用来自电子邮件的补丁 116

5.3.3检出远程分支 118

5.3.4确定引入内容 119

5.3.5整合所贡献的工作结果 120

5.3.6为发布版打标签 125

5.3.7生成构建编号 126

5.3.8准备发布 126

5.3.9简报 127

5.4小结 127

第6章GitHub 128

6.1账号设置与配置 128

6.1.1 SSH访问 129

6.1.2头像 130

6.1.3电子邮件地址 131

6.1.4双因素身份验证 132

6.2为项目做贡献 132

6.2.1派生项目 132

6.2.2 GitHub流程 133

6.2.3拉取请求的高级用法 140

6.2.4 Markdown 144

6.3项目维护 148

6.3.1创建新仓库 148

6.3.2添加协作人员 150

6.3.3管理拉取请求 150

6.3.4提醒和通知 155

6.3.5特殊文件 158

6.3.6项目管理 159

6.4组织管理 160

6.4.1组织的基本操作 160

6.4.2团队 160

6.4.3审计日志 162

6.5 GitHub脚本化 162

6.5.1钩子系统 162

6.5.2 GitHub API 166

6.6小结 170

第7章Git工具 171

7.1选择修订版本 171

7.1.1单个修订版本 171

7.1.2提交范围 175

7.2交互式暂存 177

7.2.1暂存和取消暂存文件 178

7.2.2暂存补丁 180

7.3储藏与清理 181

7.3.1储藏工作成果 181

7.3.2灵活运用储藏 183

7.3.3从储藏中创建分支 184

7.3.4清理工作目录 184

7.4签署工作 186

7.4.1 GPG简介 186

7.4.2签署标签 186

7.4.3验证标签 187

7.4.4签署提交 187

7.4.5所有人都得签署 189

7.5搜索 189

7.5.1 git grep 189

7.5.2 Git日志搜索 190

7.6重写历史 192

7.6.1修改最近一次提交 192

7.6.2修改多个提交消息 192

7.6.3重排提交 194

7.6.4压缩提交 195

7.6.5拆分提交 195

7.6.6超强命令:filter-branch 196

7.7重置揭秘 197

7.7.1三棵树 198

7.7.2工作流 199

7.7.3重置的作用 203

7.7.4利用路径进行重置 205

7.7.5压缩 207

7.7.6检出 209

7.7.7小结 210

7.8合并的高级用法 211

7.8.1合并冲突 211

7.8.2撤销合并 220

7.8.3其他类型的合并 222

7.9 rerere 225

7.10使用Git调试 230

7.10.1文件标注 230

7.10.2二分查找 232

7.11子模块 233

7.11.1开始使用子模块 233

7.11.2克隆含有子模块的项目 235

7.11.3开发含有子模块的项目 236

7.11.4子模块技巧 245

7.11.5子模块的问题 246

7.12打包 248

7.13替换 251

7.14凭据存储 257

7.14.1底层实现 258

7.14.2自定义凭据缓存 259

7.15 小结 261

第8章 自定义Git 262

8.1配置Git 262

8.1.1客户端基本配置 262

8.1.2 Git中的配色 265

8.1.3外部的合并与diff工具 265

8.1.4格式化与空白字符 268

8.1.5服务器配置 270

8.2 Git属性 270

8.2.1二进制文件 271

8.2.2关键字扩展 273

8.2.3导出仓库 276

8.2.4合并策略 277

8.3 Git钩子 277

8.3.1安装钩子 277

8.3.2客户端钩子 278

8.3.3服务器端钩子 279

8.4 Git强制策略示例 280

8.4.1服务器端钩子 280

8.4.2客户端钩子 285

8.5小结 288

第9章Git与其他系统 289

9.1作为客户端的Git 289

9.1.1 Git与Subversion 289

9.1.2 Git与Mercurial 298

9.1.3 Git与Perforce 305

9.1.4 Git与TFS 317

9.2迁移到Git 325

9.2.1 Subversion 325

9.2.2 Mercurial 327

9.2.3 Perforce 329

9.2.4 TFS 330

9.2.5自定义导入工具 331

9.3小结 337

第10章Git内幕 338

10.1底层命令和高层命令 338

10.2 Git对象 339

10.2.1树对象 341

10.2.2提交对象 343

10.2.3对象存储 345

10.3 Git引用 346

10.3.1HEAD 348

10.3.2标签对象 348

10.3.3远程引用 349

10.4包文件 350

10.5引用规格 352

10.5.1推送引用规格 354

10.5.2删除引用 354

10.6传输协议 354

10.6.1哑协议 355

10.6.2智能协议 356

10.6.3协议小结 359

10.7维护与数据恢复 359

10.7.1维护 359

10.7.2数据恢复 360

10.7.3移除对象 362

10.8环境变量 365

10.8.1全局行为 365

10.8.2仓库位置 365

10.8.3路径规格 366

10.8.4提交 366

10.8.5网络 366

10.8.6差异与合并 367

10.8.7调试 367

10.8.8杂项 369

10.9小结 369

附录A其他环境中的Git 370

附录B在应用程序中嵌入Git 381

附录C Git命令 390