Pro Git 第二版是 Git 官方站点收录的免费电子书,十章正文加三个附录,从初次 git init 一路讲到 .git 目录里的对象与引用。它不按命令清单排列,而是把日常操作和底层原理接在一起,适合已经会敲几条命令、却说不清 merge 与 rebase 差别的人。
这本书是什么:十章正文,三个附录
作者是 Scott Chacon 与 Ben Straub,Apress 出版,第二版定稿于 2014 年。全文以 CC BY-NC-SA 3.0 授权,在 git-scm.com 上免费阅读,中文版位于同一站点的 /book/zh/v2 路径下,由社区翻译并持续修订,章节结构与英文版一一对应。
正文十章共 75 个小节:起步 8 节、Git 基础 8 节、Git 分支 7 节、服务器上的 Git 10 节、分布式 Git 4 节、GitHub 6 节、Git 工具 15 节、自定义 Git 5 节、Git 与其他系统 3 节、Git 内部原理 9 节。三个附录分别是其他环境中的 Git(9 节)、把 Git 嵌入应用(5 节)、Git 命令速查(12 节)。
结构上有一条清晰的主线:先用 1 至 3 章把本地仓库用顺,再用 4 至 6 章讲多人协作与托管,第 7、8 章是高阶工具与自定义,第 9 章讲迁移,第 10 章拆开内部实现。这条线也是多数人该走的阅读顺序。
哪些章节必读,哪些可以跳过
前三章没有跳过的余地。第 1 章讲清 Git 与其他版本控制的差别:它保存的是快照,不是文件差异。第 2 章覆盖 init、add、commit、log、撤消、远程、标签与别名,第 3 章把分支讲成指针的移动,配了大量提交图。
| 章节 | 内容 | 建议 |
|---|---|---|
| 1 起步 | 版本控制概念、安装与首次配置 | 必读 |
| 2 Git 基础 | 提交、历史、撤消、远程、标签 | 必读,之后当手册查 |
| 3 Git 分支 | 分支本质、合并、变基、远程分支 | 必读,全书重点 |
| 4 服务器上的 Git | 传输协议、自建、SSH、GitLab | 按需,只用托管可跳 |
| 5 分布式 Git | 贡献流程、维护者视角 | 参与协作前读 |
| 6 GitHub | 账户、Pull Request、组织、脚本 | 可跳,界面已变 |
| 7 Git 工具 | 交互暂存、贮藏、reset 三态、bisect、子模块 | 按需,遇到问题再翻 |
| 8 自定义 Git | 配置、属性、钩子、强制策略 | 定团队规范时读 |
| 9 与其他系统 | 作为客户端、迁移到 Git | 从 SVN 迁过来才读 |
| 10 内部原理 | 对象、引用、包文件、传输协议 | 选读,对理解 reset 有帮助 |
第 7 章是密度较大的一章,15 个小节里,reset 揭密、rerere、用 bisect 定位缺陷、子模块这几节常被单独翻出来。第 10 章讲对象、引用与包文件,读完再回看 reset 涉及的三棵树,很多「为什么」会自然对上。
第 3 章的变基一节给了一条准则:提交如果已经离开你的仓库、别人可能基于它继续开发,就不要变基。书里把后果写得很具体,强制推送覆盖历史之后,同伴拉取会多出重复提交,git log 里出现作者与日期都一样的条目。这一节值得慢读,比记住 rebase 的参数有用。
章节价值也有读者反馈可参考。NeoDB 上的读书笔记里,有人把第 3 章列为全书最有价值的部分,同时认为第 4 章对多数人用处不大,因为代码大多托管在 GitHub 或 GitLab,不必自己搭服务器。
先修、时间投入与练习缺口
先修只有两条:能在终端里执行命令,机器上装了 Git。书里不假设你会某种编程语言,示例多是文本文件与仓库操作,看不懂代码也能读。
时间投入可以按小节估。75 个小节,多数一节 10 到 20 分钟读完;前三章边读边敲命令,一个周末能过一遍。第 7、10 章读得慢,各留两三个小时更现实。按每天一小时算,两周左右是常见节奏。
练习是这本书的短板。全书没有作业、没有测验、没有配套项目,命令示例多为片段,读者要自己开一个测试仓库跟着敲。建议每读完一章就造一个对应场景:第 2 章练撤消与历史查询,第 3 章练冲突合并与变基,第 7 章练贮藏与 bisect。
中文可得性上,官方中文版整本在线,术语译法前后统一,暂存区、贮藏、变基这些词都有固定译法。社区翻译偶尔有生硬句子,读不通的段落对照 英文版更省事。
免费、许可与版本边界
授权是 CC BY-NC-SA 3.0:可以复制、分发、改编,需要署名,不能用于商业目的,改编后要以相同协议发布。拿它做内部培训材料没问题,打包成付费课程就超出许可范围。
印刷版由 Apress 出版,在线版由数百位贡献者持续修正。源文件放在 progit/progit2 仓库,6620 个 star、2124 个 fork,最近一次推送在 2026 年 5 月 25 日。修正多是错字与命令更新,不是改写章节。
版本上要知道一件事:第二版定稿于 2014 年,这带来两处落差。GitHub 那一章讲的还是旧界面与旧流程,照着点会找不到按钮;git checkout 在书里同时承担切换分支和恢复文件两件事,而官方文档如今把切换分支单列为 git switch。读的时候把这两处当历史背景,其余命令与概念仍然有效。
还有一处空白:书里几乎不涉及 CI/CD、代码评审规范和 commit message 约定。这些属于团队约定,不在 Git 本身的范围里,别指望在书里找到答案。
学完能做什么,不能做什么
能做到的:独立建库、提交、分支、合并、变基,遇到冲突不慌;看懂远程分支与 fetch、pull 的差别;用三棵树解释 reset 之后文件去了哪里;配钩子做提交前检查;.git 出问题时知道从哪个目录查起。
做不到的:它不教某个团队的协作流程,也不覆盖 GitHub、GitLab 的新功能;没有练习批改与答疑;对超大仓库的性能调优、部分克隆这类较新特性着墨很少。抱着「读完就会用」的预期,容易在初次真实冲突里卡住。
另一个常见误解是把它当查询手册。附录 C 按设置与配置、获取与创建项目、快照基础、分支与合并等 12 类排命令,查具体参数去那里更快;正文更适合按顺序读一遍,建立整体印象。
和站内其他资源的分工也清楚。命令行基础薄弱,先看 Missing Semester 那类课程更顺;要做自建托管,可以接着看 Forgejo 的部署文;把接口集合放进仓库的实践,Bruno 那篇给了完整流程。
学习顺序建议
给一个可执行的两周安排。第 1 至 2 天读第 1 章,顺手完成安装与 user.name、user.email 配置;第 3 至 6 天读第 2、3 章,每节都在测试仓库里敲一遍。
第 7 天用一个小项目走一次完整流程:开分支、改文件、提交、合并、制造一次冲突再解决,最后试一次 rebase。第 8 至 10 天读第 5 章,配合一次真实的 Pull Request 流程,理解贡献者与维护者两个视角。
第 11 至 12 天按需翻第 7 章,重点看 reset 与 bisect;第 13 至 14 天读第 10 章,再回头重读第 2 章的命令,会发现很多行为有了依据。读完之后把书当手册用,遇到具体问题直接查附录 C 的命令索引,比搜索结果更可靠。
相关地址
以下为书中项目的官方入口,版本与翻译进度以这些页面为准。
- Pro Git 第二版(中文版在线阅读):https://git-scm.com/book/zh/v2
- Pro Git 第二版(英文版):https://git-scm.com/book/en/v2
- Pro Git 第二版(源文件仓库):https://github.com/progit/progit2
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




