当前位置:首页 > 工业技术
Git权威指南
Git权威指南

Git权威指南PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:蒋鑫著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111349679
  • 页数:598 页
图书介绍:本书是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是国内顶尖的版本控制专家和咨询顾问之一。全书一共九篇,共41章和4个附录,内容几乎涵盖了Git的所有方面。
《Git权威指南》目录
标签:权威 指南

第1篇 初识Git 2

第1章 版本控制的前世和今生 2

1.1黑暗的史前时代 2

1.2 CVS——开启版本控制大爆发 5

1.3 SVN——集中式版本控制集大成者 7

1.4 Git—— Linus的第二个伟大作品 9

第2章 爱上Git的理由/ 11

2.1每日工作备份 11

2.2异地协同工作 12

2.3现场版本控制 13

2.4避免引入辅助目录 15

2.5重写提交说明 15

2.6想吃后悔药 16

2.7更好用的提交列表 17

2.8更好的差异比较 18

2.9工作进度保存 18

2.10代理SVN提交实现移动式办公 19

2.11无处不在的分页器 20

2.12快 21

第3章Git的安装和使用 22

3.1在Linux下安装和使用Git 22

3.1.1包管理器方式安装 22

3.1.2从源代码进行安装 23

3.1.3从Git版本库进行安装 23

3.1.4命令补齐 25

3.1.5中文支持 25

3.2在Mac OS X下安装和使用Git 26

3.2.1以二进制发布包的方式安装 26

3.2.2安装Xcode6 27

3.2.3使用Homebrew安装Git 29

3.2.4从Git源码进行安装 29

3.2.5命令补齐 30

3.2.6其他辅助工具的安装 30

3.2.7中文支持 31

3.3在Windows下安装和使用Git (Cygwin篇) 31

3.3.1安装Cygwin 32

3.3.2安装Git 36

3.3.3 Cygwin的配置和使用 37

3.3.4 Cygwin下Git的中文支持 40

3.3.5 Cygwin下Git访问SSH服务 41

3.4 Windows下安装和使用Git (msysGit篇) 45

3.4.1安装msysGit 46

3.4.2 msysGit的配置和使用 48

3.4.3 msysGit中shell环境的中文支持 49

3.4.4 msysGit中Git的中文支持 50

3.4.5使用SSH协议 51

3.4.6 TortoiseGit的安装和使用 52

3.4.7 TortoiseGit的中文支持 55

第2篇Git独奏 58

第4章Git初始化 58

4.1创建版本库及第一次提交 58

4.2思考:为什么工作区根目录下有一个git目录 60

4.3思考:git config命令的各参数有何区别 63

4.4思考:是谁完成的提交 65

4.5思考:随意设置提交者姓名,是否太不安全 67

4.6思考:命令别名是干什么的 68

4.7备份本章的工作成果 69

第5章Git暂存区 70

5.1修改不能直接提交吗 70

5.2理解Git暂存区(stage) 76

5.3 Git Diff魔法 78

5.4不要使用git commit -a 81

5.5搁置问题,暂存状态 82

第6章Git对象 83

6.1 Git对象库探秘 83

6.2思考:SHA 1哈希值到底是什么,是如何生成的 88

6.3思考:为什么不用顺序的数字来表示提交 90

第7章Git重置 93

7.1分支游标master探秘 93

7.2用reflog挽救错误的重置 95

7.3深入了解git reset命令 96

第8章Git检出 99

8.1 HEAD的重置即检出 99

8.2挽救分离头指针 102

8.3深入了解git checkout命令 103

第9章 恢复进度 105

9.1继续暂存区未完成的实践 105

9.2使用git stash 108

9.3探秘git stash 109

第10章Git基本操作 114

10.1先来合个影 114

10.2删除文件 114

10.2.1本地删除不是真的删除 115

10.2.2执行git rm命令删除文件 116

10.2.3命令git add -u快速标记删除 117

10.3恢复删除的文件 118

10.4移动文件 119

10.5一个显示版本号的Hello World 120

10.6使用git add -i选择性添加 122

10.7 Hello World引发的新问题 124

10.8文件忽略 125

10.9文件归档 129

第11章 历史穿梭 130

11.1图形工具:gitk 130

11.2图形工具:gitg 131

11.3图形工具:qgit 135

11.4命令行工具 140

11.4.1版本表示法: git rev-parse 141

11.4.2版本范围表示法:git rev-list 144

11.4.3浏览日志:gitlog 146

11.4.4差异比较:git di 150

11.4.5文件追溯:git blame 151

11.4.6二分查找:git bisect 152

11.4.7获取历史版本 156

第12章 改变历史 157

12.1悔棋 157

12.2多步悔棋 159

12.3回到未来 161

12.3.1时间旅行一 162

12.3.2时间旅行二 167

12.3.3时间旅行三 171

12.4丢弃历史 174

12.5反转提交 177

第13章Git克隆 179

13.1鸡蛋不装在一个篮子里 179

13.2对等工作区 180

13.3克隆生成裸版本库 183

13.4创建生成裸版本库 184

第14章Git库管理 187

14.1对象和引用哪里去了 187

14.2暂存区操作引入的临时对象 189

14.3重置操作引入的对象 191

14.4 Git管家:git-gc 193

14.5 Git管家的自动执行 196

第3篇Git和声 200

第15章Git协议与工作协同 200

15.1 Git支持的协议 200

15.2多用户协同的本地模拟 202

15.3强制非快进式推送 203

15.4合并后推送 207

15.5禁止非快进式推送 208

第16章 冲突解决 210

16.1拉回操作中的合并 210

16.2合并一:自动合并 212

16.2.1修改不同的文件 212

16.2.2修改相同文件的不同区域 214

16.2.3同时更改文件名和文件内容 215

16.3合并二:逻辑冲突 217

16.4合并三:冲突解决 218

16.4.1手工编辑完成冲突解决 221

16.4.2图形工具完成冲突解决 221

16.5合并四:树冲突 225

16.5.1手工操作解决树冲突 227

16.5.2交互式解决树冲突 228

16.6合并策略 230

16.7合并相关的设置 231

第17章Git里程碑 233

17.1显示里程碑 234

17.2创建里程碑 236

17.2.1轻量级里程碑 237

17.2.2带说明的里程碑 238

17.2.3带签名的里程碑 239

17.3删除里程碑 242

17.4不要随意更改里程碑 243

17.5共享里程碑 243

17.6删除远程版本库的里程碑 246

17.7里程碑命名规范 247

第18章Git分支 253

18.1代码管理之殇 253

18.1.1发布分支 253

18.1.2特性分支 256

18.1.3卖主分支 257

18.2分支命令概述 258

18.3 “Hello World”开发计划 259

18.4基于特性分支的开发 260

18.4.1创建分支userl/getopt 261

18.4.2创建分支user2/i18n 262

18.4.3开发者user l完成功能开发 263

18.4.4将userl/getopt分支合并到主线 264

18.5基于发布分支的开发 265

18.5.1创建发布分支 266

18.5.2开发者userl工作在发布分支 267

18.5.3开发者user2工作在发布分支 268

18.5.4开发者user2合并推送 270

18.5.5发布分支的提交合并到主线 271

18.6分支变基 275

18.6.1完成user2/i 18n特性分支的开发 275

18.6.2分支user2/i 18n变基 277

第19章 远程版本库 284

19.1远程分支 284

19.2分支追踪 287

19.3远程版本库 290

19.4 PUSH和PULL操作与远程版本库 292

19.5里程碑和远程版本库 294

19.6分支和里程碑的安全性 294

第20章 补丁文件交互 296

20.1创建补丁 296

20.2应用补丁 297

20.3 StGit和Quilt 300

20.3.1 StGit 300

20.3.2 Quilt 304

第4篇Git协同模型 308

第21章 经典Git协同模型 308

21.1集中式协同模型 308

21.1.1传统集中式协同模型 309

21.1.2 Gerrit特殊的集中式协同模型 310

21.2金字塔式协同模型 311

21.2.1贡献者开放只读版本库 312

21.2.2以补丁方式贡献代码 313

第22章Topgit协同模型 314

22.1作者版本控制系统的三个里程碑 314

22.2 Topgit原理 316

22.3 Topgit的安装 317

22.4 Topgit的使用 319

22.5用Topgit方式改造Topgit 330

22.6 Topgit使用中的注意事项 334

第23章 子模组协同模型 336

23.1创建子模组 336

23.2克隆带子模组的版本库 339

23.3在子模组中修改和子模组的更新 340

23.4隐性子模组 343

23.5子模组的管理问题 345

第24章 子树合并 347

24.1引入外部版本库 347

24.2子目录方式合并外部版本库 349

24.3利用子树合并跟踪上游改动 351

24.4子树拆分 353

24.5 git-subtree插件 353

第25章Android式多版本库协同 356

25.1关于repo 357

25.2安装repo 357

25.3 repo和清单库的初始化 359

25.4清单库和清单文件 360

25.5同步项目 361

25.6建立Android代码库本地镜像 363

25.7 repo的命令集 365

25.8 repo命令的工作流 370

25.9好东西不能Android独享 371

25.9.1 repo+Gerrit模式 371

25.9.2 repo无审核模式 371

25.9.3改进的repo无审核模式 372

第26章Git和SVN协同模型 378

26.1使用git-svn的一般流程 380

26.2 git-svn的奥秘 386

26.2.1 Git库配置文件的扩展及分支映射 387

26.2.2 Git工作分支和Subversion如何对应 388

26.2.3其他辅助文件 390

26.3多样的git-svn克隆模式 390

26.4共享git-svn的克隆库 393

26.5 git-svn的局限 394

第5篇 搭建Git服务器 398

第27章 使用HTTP协议 398

27.1哑传输协议 398

27.2智能HTTP协议 400

27.3 Gitweb服务器 401

27.3.1 Gitweb的安装 402

27.3.2 Gitweb的配置 403

27.3.3版本库的Gitweb相关设置 404

27.3.4即时Gitweb服务 405

第28章 使用Git协议 406

28.1 Git协议语法格式 406

28.2 Git服务软件 406

28.3以inetd方式配置运行 406

28.4以runit方式配置运行 407

第29章 使用SSH协议 409

29.1 SSH协议语法格式 409

29.2服务架设方式比较 409

29.3关于SSH公钥认证 411

29.4关于SSH主机别名 411

第30章Gitolite服务架设 413

30.1安装Gitolite 414

30.1.1服务器端创建专用账号 414

30.1.2 Gitolite的安装升级 415

30.1.3关于SSH主机别名 417

30.1.4其他的安装方法 418

30.2管理Gitolite 419

30.2.1管理员克隆gitolite-admin管理库 419

30.2.2增加新用户 420

30.2.3更改授权 422

30.3 Gitolite授权详解 423

30.3.1授权文件的基本语法 423

30.3.2定义用户组和版本库组 424

30.3.3版本库ACL 424

30.3.4 Gitolite授权机制 426

30.4版本库授权案例 427

30.4.1对整个版本库进行授权 427

30.4.2通配符版本库的授权 428

30.4.3用户自己的版本库空间 429

30.4.4对引用的授权:传统模式 430

30.4.5对引用的授权:扩展模式 430

30.4.6对引用的授权:禁用规则的使用 431

30.4.7用户分支 431

30.4.8对路径的写授权 432

30.5创建新版本库 432

30.5.1在配置文件中出现的版本库,即时生成 433

30.5.2通配符版本库,管理员通过推送创建 434

30.5.3直接在服务器端创建 435

30.6对Gitolite的改进 435

30.7 Gitolite功能拓展 436

30.7.1版本库镜像 436

30.7.2 Gitweb和Git daemon支持 438

30.7.3其他功能拓展和参考 439

第31章Gitosis服务架设 441

31.1安装Gitosis 442

31.1.1 Gitosis的安装 442

31.1.2服务器端创建专用账号 442

31.1.3 Gitosis服务初始化 443

31.2管理Gitosis 443

31.2.1管理员克隆gitolit-admin管理库 443

31.2.2增加新用户 444

31.2.3更改授权 446

31.3 Gitosis授权详解 447

31.3.1 Gitosis默认设置 447

31.3.2管理版本库gitosis-admin 447

31.3.3定义用户组和授权 448

31.3.4 Gitweb整合 449

31.4创建新版本库 449

31.5轻量级管理的Git服务 450

第32章Gerrit代码审核服务器 452

32.1 Gert的实现原理 452

32.2架设Gerrit的服务器 456

32.3 Gerrit的配置文件 461

32.4 Gerrit的数据库访问 462

32.5立即注册为Gerrit管理员 464

32.6管理员访问SSH的管理接口 467

32.7创建新项目 468

32.8从已有的Git库创建项目 472

32.9定义评审工作流 473

32.10 Gerrit评审工作流实战 477

32.10.1开发者在本地版本库中工作 477

32.10.2开发者向审核服务器提交 478

32.10.3审核评审任务 478

32.10.4评审任务没有通过测试 480

32.10.5重新提交新的补丁集 482

32.10.6新修订集通过评审 483

32.10.7从远程版本库更新 485

32.11更多Gerrit参考 486

第33章Git版本库托管 487

33.1 Github 487

33.2 Gitorious 489

第6篇 迁移到Git 492

第34章CVs版本库到Git的迁移 492

34.1安装cvs2svn(含cvs2git) 492

34.1.1 Linux下cvs2svn的安装 492

34.1.2 Mac OS X下cvs2svn的安装 493

34.2版本库转换的准备工作 494

34.2.1版本库转换注意事项 494

34.2.2文件名乱码问题 494

34.2.3提交说明乱码问题 494

34.3版本库转换 496

34.3.1配置文件解说 496

34.3.2运行cvs2git完成转换 500

34.4迁移后的版本库检查 501

第35章 更多版本控制系统的迁移 502

35.1 SVN版本库到Git的迁移 502

35.2 Hg版本库到Git的迁移 503

35.3通用版本库迁移 505

35.4 Git版本库整理 511

35.4.1环境变量过滤器 513

35.4.2树过滤器 513

35.4.3暂存区过滤器 513

35.4.4父节点过滤器 514

35.4.5提交说明过滤器 514

35.4.6提交过滤器 515

35.4.7里程碑名字过滤器 516

35.4.8子目录过滤器 516

第7篇Git的其他应用 518

第36章etckeeper 518

36.1安装etckeeper 518

36.2配置etckeeper 519

36.3使用etckeeper 519

第37章Gistore 520

37.1 Gistore的安装 520

37.1.1软件依赖 520

37.1.2从源码安装Gistore 521

37.1.3用easy_install安装 521

37.2 Gistore的使用 522

37.2.1创建并初始化备份库 522

37.2.2 Gistore的配置文件 523

37.2.3 Gistore的备份项管理 524

37.2.4执行备份任务 525

37.2.5查看备份日志 525

37.2.6查看及恢复备份数据 527

37.2.7备份回滚及设置 528

37.2.8注册备份任务别名 529

37.2.9自动备份:crontab 529

37.3 Gistore双机备份 529

第38章 补丁中的二进制文件 531

38.1 Git版本库中二进制文件变更的支持 531

38.2对非Git版本库中二进制文件变更的支持 535

38.3其他工具对Git扩展补丁文件的支持 536

第39章 云存储 538

39.1现有云存储的问题 538

39.2 Git式云存储畅想 539

第8篇Git杂谈 542

第40章 跨平台操作Git 542

40.1字符集问题 542

40.2文件名大小写问题 543

40.3换行符问题 545

第41章Git的其他特性 549

41.1属性 549

41.1.1属性定义 549

41.1.2属性文件及优先级 550

41.1.3常用属性介绍 552

41.2钩子和模板 557

41.2.1 Git钩子 557

41.2.2 Git模板 562

41.3稀疏检出和浅克隆 563

41.3.1稀疏检出 563

41.3.2浅克隆 566

41.4嫁接和替换 568

41.4.1提交嫁接 568

41.4.2提交替换 568

41.5 Git评注 570

41.5.1评注的奥秘 570

41.5.2评注相关命令 573

41.5.3评注相关配置 574

第9篇 附录 576

附录A Git命令索引 576

A.1常用的Git命令 576

A.2对象库操作相关命令 578

A.3引用操作相关命令 578

A.4版本库管理相关命令 579

A.5数据传输相关命令 579

A.6邮件相关命令 580

A.7协议相关命令 580

A.8版本库转换和交互相关命令 581

A.9合并相关的辅助命令 581

A.10杂项 582

附录B Git与CVs面对面 583

B.1面对面访谈录 583

B.2 Git和CVs命令对照 585

附录C Git与SVN面对面 587

C.1面对面访谈录 587

C.2 Git和SVN命令对照 589

附录D Git与Hg面对面 592

D.1面对面访谈录 592

D.2 Git和Hg命令对照 593

返回顶部