出版社: 人民邮电出版社
原作名: Pro Git
译者: 门佳 / 刘梓懿
出版年: 2017-9
页数: 420
定价: 89.00元
装帧: 平装
ISBN: 9787115463067
内容简介 · · · · · ·
Git 仅用了几年时间就一跃成为了几乎一统商业及开源领域的版本控制系统。本书全面介绍Git 进行版本管理的基础和进阶知识。全书共10 章,内容由浅入深,展现了普通程序员和项目经理如何有效利用Git提高工作效率,掌握分支概念,灵活地将Git 用于服务器和分布式工作流,如何将开发项目迁移到Git,以及如何高效利用GitHub。
精通Git(第2版)的创作者
· · · · · ·
-
Scott Chacon 作者
作者简介 · · · · · ·
作者简介:
Scott Chacon
GitHub联合创始人,曾任GitHub首席信息官,现任在线教育创业公司Chatterbug的首席执行官。在GitHub工作的7年里,他负责维护Git主页git-scm.com,并在许多技术大会上发表过演讲,以此传播Git文化和开源精神。GitHub ID:schacon。
Ben Straub
软件开发者,曾就职于GitHub,参与开发了Libgit2开发包以及GitHub for Windows客户端,另著有《GitHub实践》。GitHub ID:ben。
译者简介:
门佳
GNU/Linux深度用户,喜欢溯本求源,挖掘技术背后的来龙去脉,对程序语言设计理论、编译技术、操作系统设计与实现、Web开发等领域均有涉猎,译著包括《Linux Shell脚本攻略》《TCP Sockets编程》《精通JavaScri...
作者简介:
Scott Chacon
GitHub联合创始人,曾任GitHub首席信息官,现任在线教育创业公司Chatterbug的首席执行官。在GitHub工作的7年里,他负责维护Git主页git-scm.com,并在许多技术大会上发表过演讲,以此传播Git文化和开源精神。GitHub ID:schacon。
Ben Straub
软件开发者,曾就职于GitHub,参与开发了Libgit2开发包以及GitHub for Windows客户端,另著有《GitHub实践》。GitHub ID:ben。
译者简介:
门佳
GNU/Linux深度用户,喜欢溯本求源,挖掘技术背后的来龙去脉,对程序语言设计理论、编译技术、操作系统设计与实现、Web开发等领域均有涉猎,译著包括《Linux Shell脚本攻略》《TCP Sockets编程》《精通JavaScript(第2版)》《Linux命令行与shell脚本编程大全(第3版)》等。
刘梓懿
ThoughtWorks高级软件工程师,亚马逊AWS认证架构师,曾为多个世界知名客户提供软件交付和咨询服务,在大型组织的云架构应用、持续交付、分层自动化测试体系建设和DevOps转型等方面拥有丰富的实践经验。GitHub ID:richardzone。
目录 · · · · · ·
1.1 关于版本控制 1
1.1.1 本地版本控制系统 1
1.1.2 集中式版本控制系统 2
1.1.3 分布式版本控制系统 3
1.2 Git简史 4
· · · · · · (更多)
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.1 HEAD 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
· · · · · · (收起)
"精通Git(第2版)"试读 · · · · · ·
本章主要介绍Git的入门知识。我们首先会讲述版本控制工具的一些背景,然后介绍如何在你自己的系统上安装、配置和运行Git。学完本章,你将明白Git是怎么来的、为什么需要Git,并掌握使用Git的基础知识。 1.1 关于版本控制 什么是“版本控制”,为什么需要它?版本控制是一套系统,该系统按时间顺序记录某一个或一系列文件的变更,让你可以查看其以前的特定版本。本书以软件源代码文...
喜欢读"精通Git(第2版)"的人也喜欢的电子书 · · · · · ·
喜欢读"精通Git(第2版)"的人也喜欢 · · · · · ·
- 深入理解Python特性 8.6
- Python高级编程(第二版) 7.3
- 重构(第2版) 9.3
- 深入浅出Docker 7.8
- CSS揭秘 9.3
- Java 8实战 9.0
- 代码整洁之道 8.8
- C程序设计语言 (原书第2版) 9.6
精通Git(第2版)的书评 · · · · · · ( 全部 21 条 )
非常不错的Git入门加中端书
对于入门和理解Git的思想和内部机制是不错的书
> 更多书评 21篇
论坛 · · · · · ·
新版,15页图片缺失 | 来自dcchan | 2023-03-28 22:58:58 |
这本书的其他版本 · · · · · · ( 全部4 )
-
Apress (2009)9.1分 1231人读过
-
Apress (2014)9.1分 322人读过
-
Apress (2014)暂无评分 5人读过
以下书单推荐 · · · · · · ( 全部 )
- CDA Level III 数据科学家(2019.1) (168 Hours)
- Git (李鼎)
- 每周一书 (菲多芬)
- 书单|it (笑看人生)
- 书单|图灵教育 (只要洛就必达)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有518人想读,手里有一本闲着?
订阅关于精通Git(第2版)的评论:
feed: rss 2.0
0 有用 Medi 2022-05-01 00:16:47
感觉后续可以再翻一翻
0 有用 勤劳de小懒熊 2022-07-08 00:02:10
用了多年git,终于抽空补课。git reset ,git rebase -i ,git commit --amend, git git stash, git blame
0 有用 howie.serious 2024-03-22 21:26:41 北京
在 git 这件事上再次验证:读一本书,读一本高质量的、内容成体系的书,是领域入门、快速搭建知识体系框架的最快方法。 这两天读了 《Pro Git》,感觉比零零散散的搜索、文章、视频和 GPT 聊天有效太多了。后者的方式,即使一开始就是搭建知识体系导向,但是对概念和原理的理解都不够深入。 构建知识体系的时候,书是不可或缺的,而且得是主体位置。
0 有用 无爱则欢 2022-01-05 10:44:58
关于git基本使用教程很多了,书中关于底层原理部分非常值得一看,对于从遇到问题、到发现问题本质、到解决问题很有帮助。
0 有用 散关清渭 2018-09-01 10:19:14
挺不错的一本书 但是书名翻译的不好 充其量算是Git高级 和 精通差距还是挺大的吧 四星给的有些勉强 不情不愿 准确来说应该是3.5星
0 有用 牧羊人 2024-05-13 09:17:29 山东
很好的git入门书,但是看完还不太会用(我太菜了)。还是直接实战更适合我。git的原理用几张图就能直观的概括,有很多东西暂时都用不到,等等用到了再来现查
0 有用 阿畅AChang 2024-04-11 21:34:34 陕西
学习git利器
0 有用 howie.serious 2024-03-22 21:26:41 北京
在 git 这件事上再次验证:读一本书,读一本高质量的、内容成体系的书,是领域入门、快速搭建知识体系框架的最快方法。 这两天读了 《Pro Git》,感觉比零零散散的搜索、文章、视频和 GPT 聊天有效太多了。后者的方式,即使一开始就是搭建知识体系导向,但是对概念和原理的理解都不够深入。 构建知识体系的时候,书是不可或缺的,而且得是主体位置。
0 有用 Yale 2024-02-16 00:25:31 广东
当初看的是Git官网免费的在线中文版的Pro Git。该书由浅及深,图文并茂,书中不仅讲述了Git的一些常用命令,也讲了工程上常用的一些分支管理策略,还讲了Gitlab 和 Github 的使用,最后讲了Git的内部原理,理论结合实例,确实是一本系统学习Git的好书!
0 有用 动物凶猛 2024-01-03 11:40:46 天津
除了常用分支策略,基本都讲了