书籍详情
Git高效实践

作者:吴子俊
出版社:清华大学出版社
出版时间:2025-01-01
ISBN:9787302677192
定价:¥109.00
购买这本书可以去
内容简介
本书是一本全面介绍?Git?版本控制系统的实践指南和参考手册。这本书将帮助读者掌握?Git?的核心概念和操作技巧,同时教授如何使用?Git?进行高效的版本控制和团队协作。笔者将从?0?到?1,由浅入深地对?Git?的操作进行讲解。本书共分为?17?章,全方位围绕?Git?的使用技巧与原理进行讲解。书中绝大多数的命令都配有专门的实战案例,以帮助读者更好地理解。本书还提供了案例代码的每个步骤的源代码,以便于读者观察和思考,通过结合命令解析、概念阐述、流程图以及实战案例,帮助读者全面吸收并融会贯通所学知识。无论您是前端或后端开发工程师、在校学生或初学者,还是具有一定经验的开发者,本书都将为您提供宝贵的知识参考和指导。它将成为您学习?Git?之路上的明灯。
作者简介
吴子俊江西南昌人,具备多年IT行业开发经验,尤其在软件开发、架构设计及著作方面拥有深厚的专业知识和实践经验。精通Java知识体系,擅长互联网架构设计、微服务以及分布式技术等,积累了大量在大型企业级Java应用程序开发方面的实战经验。曾担任程序员、技术组长、技术经理、项目经理等职位。全网人气累计超过 500万,荣获阿里云开发者社区、51CTO、CSDN等多家知名平台的专家博主荣誉,并被百度开发者社区评为优质内容创作者。在软件开发和架构设计领域具有一定的行业影响力。
目录
第1章 Git概述 1
1.1 项目协同开发 1
1.2 Git简介 2
1.3 集中式与分布式版本控制
系统 3
1.3.1 集中式版本控制系统 3
1.3.2 分布式版本控制系统 4
1.4 Git的使用流程 5
1.4.1 本地仓库 6
1.4.2 协同开发 7
1.5 创建 Git 仓库 7
1.5.1 初始化Git仓库 7
1.5.2 Git的帮助文档 9
1.6 Git的配置 10
1.6.1 Git的配置等级 11
1.6.2 Git的配置分类 12
1.6.3 读取Git配置 12
1.6.4 设置Git配置 13
1.6.5 Git的初始化配置 15
第2章 Git的基本使用 17
2.1 Git基本操作命令 17
2.2 暂存区的概念 21
2.2.1 暂存区的工作流程 21
2.2.2 查看暂存区 22
2.3 Git的工作空间状态 24
2.3.1 nothing to commit 24
2.3.2 Untracked files 25
2.3.3 Changes to be
committed 26
2.3.4 Changes not staged for
commit 27
第3章 Git其他常用命令 29
3.1 diff命令——文件对比 29
3.1.1 工作空间与暂存区文件
对比 29
3.1.2 版本库与暂存区文件
对比 30
3.2 rm命令——文件删除 31
3.2.1 普通方式删除 31
3.2.2 git rm命令删除 33
3.3 mv命令——文件改名 36
3.3.1 普通方式重命名 37
3.3.2 使用git mv改名 38
3.4 log命令——日志查询 39
3.4.1 git log命令的使用 40
3.4.2 格式化日志 41
3.4.3 日期格式化 42
3.5 Git文件忽略 44
3.5.1 忽略文件的使用 44
3.5.2 强制追踪 45
3.5.3 忽略规则的优先级 46
3.5.4 忽略规则的匹配语法 46
第4章 Git底层对象 49
4.1 Git对象的概念与介绍 49
4.2 Blob对象 50
4.2.1 Blob对象简介 50
4.2.2 Blob对象的使用 50
4.2.3 Blob的存储方式 53
4.3 Tree对象 53
4.3.1 Tree对象简介 53
4.3.2 暂存区与Tree对象 54
4.3.3 生成Tree对象 54
4.3.4 读取Tree对象 56
4.4 Commit对象 62
4.4.1 Commit对象简介 62
4.4.2 生成Commit对象 63
4.4.3 指定父级Commit对象
提交 65
4.5 Tag对象 66
4.5.1 Tag对象简介 66
4.5.2 Tag对象的使用 66
第5章 Git命令原理 70
5.1 add命令原理 70
5.2 commit命令原理 71
5.3 文件删除原理 73
5.3.1 普通方式删除 74
5.3.2 git rm命令原理 76
5.4 文件改名原理 78
5.4.1 普通方式改名 78
5.4.2 git mv命令原理 80
第6章 Git分支的使用 83
6.1 Git分支概述 83
6.1.1 Git分支简介 83
6.1.2 Git分支原理 84
6.2 分支的使用 86
6.2.1 创建分支 87
6.2.2 查看分支 88
6.2.3 删除分支 88
6.3 切换分支 89
6.3.1 checkout切换分支 89
6.3.2 switch切换分支 91
6.4 切换分支原理 92
6.4.1 影响工作空间 94
6.4.2 影响暂存区 97
6.4.3 分离头指针 100
6.5 checkout命令的其他功能 102
6.5.1 撤销修改 102
6.5.2 强制切换 103
6.6 Git的分支状态存储 104
6.6.1 git stash命令 104
6.6.2 Git存储的基本使用 105
6.6.3 Git存储的其他用法 109
6.6.4 Git存储与暂存区 113
6.6.5 Git存储的原理 114
6.7 工作树的使用 118
6.7.1 工作树简介 118
6.7.2 git worktree的使用 119
6.7.3 git worktree详细
用法 121
第7章 分支合并 123
7.1 分支开发路线 123
7.1.1 同轴开发路线 123
7.1.2 分叉开发路线 125
7.2 分支合并的分类 126
7.2.1 快进式合并分支 126
7.2.2 典型式合并分支 129
7.3 Git的代码冲突 132
7.3.1 代码冲突的分类与
特点 132
7.3.2 快进式合并代码
冲突 133
7.3.3 典型式合并代码
冲突 138
7.4 Git的代码冲突原理 142
7.4.1 两路合并算法 142
7.4.2 三路合并算法 143
7.4.3 递归三路合并 149
7.5 git merge命令详解 153
7.5.1 git merge其他用法 153
7.5.2 git merge的可选
参数 155
7.5.3 分支合并的策略 158
7.6 git rebase命令 161
7.6.1 git rebase命令简介 161
7.6.2 git rebase与git merge 162
7.6.3 交互式Rebase 166
7.7 git cherry-pick命令 175
7.7.1 git cherry-pick命令
简介 176
7.7.2 cherry-pick与merge 176
第8章 Git数据恢复与还原 183
8.1 Git的还原——restore命令 183
8.1.1 还原工作空间 184
8.1.2 还原暂存区 184
8.1.3 同时还原暂存区和
工作空间 186
8.2 修正提交——amend命令 187
8.2.1 提交日志修正 187
8.2.2 提交内容修正 188
8.2.3 提交文件修正 189
8.3 Git的数据回退——
reset命令 190
8.3.1 回退HEAD指针 190
8.3.2 回退暂存区 193
8.3.3 回退工作空间 195
第9章 远程协同开发 197
9.1 远程仓库简介 197
9.1.1 GitHub 197
9.1.2 Gitee 198
9.1.3 其他托管平台 198
9.2 发布远程仓库 200
9.2.1 协同开发工作流程 201
9.2.2 创建远程仓库 202
9.2.3 推送仓库 203
9.3 协同开发相关命令 206
9.3.1 remote命令的使用 206
9.3.2 clone命令的使用 207
9.3.3 fetch命令的使用 208
9.3.4 pull命令的使用 211
9.4 远程跟踪分支 212
9.4.1 远程分支的创建 213
9.4.2 远程跟踪分支的
创建 215
9.5 远程协作代码冲突 221
9.5.1 分支合并的情况 221
9.5.2 远程协作的情况 227
9.6 用户信息的配置 233
第10章 多人协同开发 236
10.1 多人协同开发的场景 236
10.1.1 场景1——单人
开发 236
10.1.2 场景2——多人共同
开发 237
10.1.3 场景3——多人独立
开发 238
10.2 进行多人协同 238
10.2.1 模拟多账号协同
开发 239
10.2.2 Pull Request的
使用 243
第11章 TortoiseGit图形化工具 250
11.1 TortoiseGit简介 250
11.2 TortoiseGit的基本使用 252
11.2.1 创建仓库 252
11.2.2 添加 253
11.2.3 提交 254
11.2.4 对比 255
11.2.5 改名 256
11.2.6 删除 258
11.2.7 日志 259
11.2.8 标签的使用 260
11.2.9 文件忽略 261
11.3 TortoiseGit数据恢复 262
11.3.1 restore数据还原 262
11.3.2 amend提交修正 264
11.3.3 reset数据回退 265
11.4 TortoiseGit操作分支 271
11.4.1 创建分支 272
11.4.2 切换分支 273
11.4.3 合并分支 274
11.4.4 分支合并解决
冲突 275
11.5 分支状态存储 278
11.5.1 使用存储 278
11.5.2 查看存储 280
11.5.3 读取存储 280
11.5.4 删除存储 281
11.6 TortoiseGit分支高级操作 282
11.6.1 rebase操作 282
11.6.2 cherry-pick操作 286
11.7 TortoiseGit协同开发 290
11.7.1 remote 290
11.7.2 push 292
11.7.3 clone 293
11.7.4 fetch 294
11.7.5 pull 295
11.7.6 模拟协同开发
冲突 296
第12章 IntelliJ IDEA集成Git插件的
使用 299
12.1 Git插件的基本使用 299
12.1.1 IDEA绑定Git
插件 299
12.1.2 提交项目 301
12.1.3 添加忽略文件 302
12.1.4 比较 306
12.1.5 改名 307
12.1.6 删除 307
12.1.7 日志 307
12.1.8 标签 309
12.2 Git插件数据恢复 310
12.2.1 restore数据还原 311
12.2.2 amend提交修正 311
12.2.3 reset数据回退 312
12.3 分支的操作 315
12.3.1 创建分支 315
12.3.2 切换分支 317
12.3.3 合并分支 317
12.3.4 分支合并解决冲突 318
12.4 分支状态存储 321
12.5 分支高级操作 322
12.5.1 rebase操作 322
12.5.2 cherry-pick操作 325
12.6 协同开发 327
12.6.1 remote 327
12.6.2 push 328
12.6.3 clone 329
12.6.4 fetch 330
12.6.5 pull 332
12.6.6 模拟协同开发冲突 334
第13章 协同开发命令详细用法 336
13.1 push命令 336
13.1.1 push命令的使用
方式 336
13.1.2 push命令的常用
参数 339
13.1.3 push命令常用参数
演示 340
13.1.4 上游分支 342
13.1.5 修剪分支 345
13.1.6 强制推送 346
13.2 fetch命令 348
13.2.1 fetch命令的常用
参数 348
13.2.2 fetch命令常用参数
演示 349
13.2.3 强制获取 351
13.3 pull命令 352
13.3.1 pull命令的常用
参数 353
13.3.2 pull命令常用参数
演示 353
13.3.3 pull变基操作 356
13.3.4 强制拉取 360
第14章 Git补丁 363
14.1 Git补丁语法 363
14.2 git apply应用补丁 364
14.2.1 git apply使用示例 364
14.2.2 git apply旧版本
问题 368
14.3 git format-patch生成补丁 368
14.4 git am应用补丁 371
14.4.1 git am使用示例 371
14.4.2 git am解决冲突 372
第15章 Git工作流 375
15.1 Git Flow中的分支 375
15.2 使用Git Flow模拟开发 377
15.3 使用Git Flow Script开发 380
第16章 Git钩子 387
16.1 钩子的作用 387
16.1.1 客户端钩子 387
16.1.2 服务端钩子 388
16.2 使用钩子 388
16.2.1 编写pre-commit
钩子 389
16.2.2 编写commit-msg
钩子 390
16.2.3 采用Java实现
钩子 391
第17章 Git的配置项 393
17.1 git config命令 393
17.1.1 查询信息类 393
17.1.2 作用域类 394
17.1.3 属性操作类 396
17.2 .git目录详解 401
17.2.1 .git目录中文件夹的
说明 401
17.2.2 .git目录中文件的
说明 404
17.3 Git客户端配置 404
17.3.1 user配置项 405
17.3.2 alias配置项 405
17.3.3 credential配置项 407
17.3.4 merge配置项 412
17.3.5 push配置项 414
17.3.6 其他配置项 416
17.4 Git服务端配置 418
17.4.1 receive配置项 419
17.4.2 http配置项 420
17.4.3 gc配置项 421
1.1 项目协同开发 1
1.2 Git简介 2
1.3 集中式与分布式版本控制
系统 3
1.3.1 集中式版本控制系统 3
1.3.2 分布式版本控制系统 4
1.4 Git的使用流程 5
1.4.1 本地仓库 6
1.4.2 协同开发 7
1.5 创建 Git 仓库 7
1.5.1 初始化Git仓库 7
1.5.2 Git的帮助文档 9
1.6 Git的配置 10
1.6.1 Git的配置等级 11
1.6.2 Git的配置分类 12
1.6.3 读取Git配置 12
1.6.4 设置Git配置 13
1.6.5 Git的初始化配置 15
第2章 Git的基本使用 17
2.1 Git基本操作命令 17
2.2 暂存区的概念 21
2.2.1 暂存区的工作流程 21
2.2.2 查看暂存区 22
2.3 Git的工作空间状态 24
2.3.1 nothing to commit 24
2.3.2 Untracked files 25
2.3.3 Changes to be
committed 26
2.3.4 Changes not staged for
commit 27
第3章 Git其他常用命令 29
3.1 diff命令——文件对比 29
3.1.1 工作空间与暂存区文件
对比 29
3.1.2 版本库与暂存区文件
对比 30
3.2 rm命令——文件删除 31
3.2.1 普通方式删除 31
3.2.2 git rm命令删除 33
3.3 mv命令——文件改名 36
3.3.1 普通方式重命名 37
3.3.2 使用git mv改名 38
3.4 log命令——日志查询 39
3.4.1 git log命令的使用 40
3.4.2 格式化日志 41
3.4.3 日期格式化 42
3.5 Git文件忽略 44
3.5.1 忽略文件的使用 44
3.5.2 强制追踪 45
3.5.3 忽略规则的优先级 46
3.5.4 忽略规则的匹配语法 46
第4章 Git底层对象 49
4.1 Git对象的概念与介绍 49
4.2 Blob对象 50
4.2.1 Blob对象简介 50
4.2.2 Blob对象的使用 50
4.2.3 Blob的存储方式 53
4.3 Tree对象 53
4.3.1 Tree对象简介 53
4.3.2 暂存区与Tree对象 54
4.3.3 生成Tree对象 54
4.3.4 读取Tree对象 56
4.4 Commit对象 62
4.4.1 Commit对象简介 62
4.4.2 生成Commit对象 63
4.4.3 指定父级Commit对象
提交 65
4.5 Tag对象 66
4.5.1 Tag对象简介 66
4.5.2 Tag对象的使用 66
第5章 Git命令原理 70
5.1 add命令原理 70
5.2 commit命令原理 71
5.3 文件删除原理 73
5.3.1 普通方式删除 74
5.3.2 git rm命令原理 76
5.4 文件改名原理 78
5.4.1 普通方式改名 78
5.4.2 git mv命令原理 80
第6章 Git分支的使用 83
6.1 Git分支概述 83
6.1.1 Git分支简介 83
6.1.2 Git分支原理 84
6.2 分支的使用 86
6.2.1 创建分支 87
6.2.2 查看分支 88
6.2.3 删除分支 88
6.3 切换分支 89
6.3.1 checkout切换分支 89
6.3.2 switch切换分支 91
6.4 切换分支原理 92
6.4.1 影响工作空间 94
6.4.2 影响暂存区 97
6.4.3 分离头指针 100
6.5 checkout命令的其他功能 102
6.5.1 撤销修改 102
6.5.2 强制切换 103
6.6 Git的分支状态存储 104
6.6.1 git stash命令 104
6.6.2 Git存储的基本使用 105
6.6.3 Git存储的其他用法 109
6.6.4 Git存储与暂存区 113
6.6.5 Git存储的原理 114
6.7 工作树的使用 118
6.7.1 工作树简介 118
6.7.2 git worktree的使用 119
6.7.3 git worktree详细
用法 121
第7章 分支合并 123
7.1 分支开发路线 123
7.1.1 同轴开发路线 123
7.1.2 分叉开发路线 125
7.2 分支合并的分类 126
7.2.1 快进式合并分支 126
7.2.2 典型式合并分支 129
7.3 Git的代码冲突 132
7.3.1 代码冲突的分类与
特点 132
7.3.2 快进式合并代码
冲突 133
7.3.3 典型式合并代码
冲突 138
7.4 Git的代码冲突原理 142
7.4.1 两路合并算法 142
7.4.2 三路合并算法 143
7.4.3 递归三路合并 149
7.5 git merge命令详解 153
7.5.1 git merge其他用法 153
7.5.2 git merge的可选
参数 155
7.5.3 分支合并的策略 158
7.6 git rebase命令 161
7.6.1 git rebase命令简介 161
7.6.2 git rebase与git merge 162
7.6.3 交互式Rebase 166
7.7 git cherry-pick命令 175
7.7.1 git cherry-pick命令
简介 176
7.7.2 cherry-pick与merge 176
第8章 Git数据恢复与还原 183
8.1 Git的还原——restore命令 183
8.1.1 还原工作空间 184
8.1.2 还原暂存区 184
8.1.3 同时还原暂存区和
工作空间 186
8.2 修正提交——amend命令 187
8.2.1 提交日志修正 187
8.2.2 提交内容修正 188
8.2.3 提交文件修正 189
8.3 Git的数据回退——
reset命令 190
8.3.1 回退HEAD指针 190
8.3.2 回退暂存区 193
8.3.3 回退工作空间 195
第9章 远程协同开发 197
9.1 远程仓库简介 197
9.1.1 GitHub 197
9.1.2 Gitee 198
9.1.3 其他托管平台 198
9.2 发布远程仓库 200
9.2.1 协同开发工作流程 201
9.2.2 创建远程仓库 202
9.2.3 推送仓库 203
9.3 协同开发相关命令 206
9.3.1 remote命令的使用 206
9.3.2 clone命令的使用 207
9.3.3 fetch命令的使用 208
9.3.4 pull命令的使用 211
9.4 远程跟踪分支 212
9.4.1 远程分支的创建 213
9.4.2 远程跟踪分支的
创建 215
9.5 远程协作代码冲突 221
9.5.1 分支合并的情况 221
9.5.2 远程协作的情况 227
9.6 用户信息的配置 233
第10章 多人协同开发 236
10.1 多人协同开发的场景 236
10.1.1 场景1——单人
开发 236
10.1.2 场景2——多人共同
开发 237
10.1.3 场景3——多人独立
开发 238
10.2 进行多人协同 238
10.2.1 模拟多账号协同
开发 239
10.2.2 Pull Request的
使用 243
第11章 TortoiseGit图形化工具 250
11.1 TortoiseGit简介 250
11.2 TortoiseGit的基本使用 252
11.2.1 创建仓库 252
11.2.2 添加 253
11.2.3 提交 254
11.2.4 对比 255
11.2.5 改名 256
11.2.6 删除 258
11.2.7 日志 259
11.2.8 标签的使用 260
11.2.9 文件忽略 261
11.3 TortoiseGit数据恢复 262
11.3.1 restore数据还原 262
11.3.2 amend提交修正 264
11.3.3 reset数据回退 265
11.4 TortoiseGit操作分支 271
11.4.1 创建分支 272
11.4.2 切换分支 273
11.4.3 合并分支 274
11.4.4 分支合并解决
冲突 275
11.5 分支状态存储 278
11.5.1 使用存储 278
11.5.2 查看存储 280
11.5.3 读取存储 280
11.5.4 删除存储 281
11.6 TortoiseGit分支高级操作 282
11.6.1 rebase操作 282
11.6.2 cherry-pick操作 286
11.7 TortoiseGit协同开发 290
11.7.1 remote 290
11.7.2 push 292
11.7.3 clone 293
11.7.4 fetch 294
11.7.5 pull 295
11.7.6 模拟协同开发
冲突 296
第12章 IntelliJ IDEA集成Git插件的
使用 299
12.1 Git插件的基本使用 299
12.1.1 IDEA绑定Git
插件 299
12.1.2 提交项目 301
12.1.3 添加忽略文件 302
12.1.4 比较 306
12.1.5 改名 307
12.1.6 删除 307
12.1.7 日志 307
12.1.8 标签 309
12.2 Git插件数据恢复 310
12.2.1 restore数据还原 311
12.2.2 amend提交修正 311
12.2.3 reset数据回退 312
12.3 分支的操作 315
12.3.1 创建分支 315
12.3.2 切换分支 317
12.3.3 合并分支 317
12.3.4 分支合并解决冲突 318
12.4 分支状态存储 321
12.5 分支高级操作 322
12.5.1 rebase操作 322
12.5.2 cherry-pick操作 325
12.6 协同开发 327
12.6.1 remote 327
12.6.2 push 328
12.6.3 clone 329
12.6.4 fetch 330
12.6.5 pull 332
12.6.6 模拟协同开发冲突 334
第13章 协同开发命令详细用法 336
13.1 push命令 336
13.1.1 push命令的使用
方式 336
13.1.2 push命令的常用
参数 339
13.1.3 push命令常用参数
演示 340
13.1.4 上游分支 342
13.1.5 修剪分支 345
13.1.6 强制推送 346
13.2 fetch命令 348
13.2.1 fetch命令的常用
参数 348
13.2.2 fetch命令常用参数
演示 349
13.2.3 强制获取 351
13.3 pull命令 352
13.3.1 pull命令的常用
参数 353
13.3.2 pull命令常用参数
演示 353
13.3.3 pull变基操作 356
13.3.4 强制拉取 360
第14章 Git补丁 363
14.1 Git补丁语法 363
14.2 git apply应用补丁 364
14.2.1 git apply使用示例 364
14.2.2 git apply旧版本
问题 368
14.3 git format-patch生成补丁 368
14.4 git am应用补丁 371
14.4.1 git am使用示例 371
14.4.2 git am解决冲突 372
第15章 Git工作流 375
15.1 Git Flow中的分支 375
15.2 使用Git Flow模拟开发 377
15.3 使用Git Flow Script开发 380
第16章 Git钩子 387
16.1 钩子的作用 387
16.1.1 客户端钩子 387
16.1.2 服务端钩子 388
16.2 使用钩子 388
16.2.1 编写pre-commit
钩子 389
16.2.2 编写commit-msg
钩子 390
16.2.3 采用Java实现
钩子 391
第17章 Git的配置项 393
17.1 git config命令 393
17.1.1 查询信息类 393
17.1.2 作用域类 394
17.1.3 属性操作类 396
17.2 .git目录详解 401
17.2.1 .git目录中文件夹的
说明 401
17.2.2 .git目录中文件的
说明 404
17.3 Git客户端配置 404
17.3.1 user配置项 405
17.3.2 alias配置项 405
17.3.3 credential配置项 407
17.3.4 merge配置项 412
17.3.5 push配置项 414
17.3.6 其他配置项 416
17.4 Git服务端配置 418
17.4.1 receive配置项 419
17.4.2 http配置项 420
17.4.3 gc配置项 421
猜您喜欢



