Git权威指南PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:蒋鑫著
- 出 版 社:北京:机械工业出版社
- 出版年份:2011
- ISBN:9787111349679
- 页数:598 页
第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
- 《近代旅游指南汇刊二编 16》王强主编 2017
- 《甘肃省档案馆指南》甘肃省档案馆编 2018
- 《近代旅游指南汇刊 31》王强主编 2014
- 《近代旅游指南汇刊二编 10》王强主编 2017
- 《手工咖啡 咖啡爱好者的完美冲煮指南》(美国)杰茜卡·伊斯托,安德烈亚斯·威尔霍夫 2019
- 《近代旅游指南汇刊 13》王强主编 2014
- 《近代旅游指南汇刊 28》王强主编 2014
- 《近代旅游指南汇刊 23》王强主编 2014
- 《重庆市绿色建筑评价技术指南》重庆大学,重庆市建筑节能协会绿色建筑专业委员会主编 2018
- 《ESG指标管理与信息披露指南》管竹笋,林波,代奕波主编 2019
- 《计算机自适应英语语用能力测试系统设计与效度验证 以TEM4词汇与语法题为例》张一鑫著 2019
- 《高浓度含氮有机废水生物处理新技术》周鑫著 2019
- 《Web前端性能优化》陈铎鑫著 2020
- 《画家与魔鬼》吴礼鑫著 2013
- 《山海经 绝美水墨画卷》沈鑫著;沈鑫绘 2019
- 《迷宫中的灯塔 20世纪上半叶英国文学场中的弗吉尼亚·伍尔夫》胡英,许静雯,杜亚鑫著 2019
- 《三侠剑 5》张杰鑫著 1996
- 《三侠剑 11》张杰鑫著 1996
- 《三侠剑 6》张杰鑫著 1996
- 《三侠剑 10》张杰鑫著 1996
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019