Git版本控制管理(第2版)
Jon Loeliger, Matthew McCullough
王迪, 丁彦 等译
出版时间:2015年01月
页数:386
本书可以让读者迅速上手Git,对代码的变更进行跟踪、合并和管理。本书通过一系列步骤式教程,引导读者迅速掌握从Git基础知识到高级使用技巧在内的所有知识,并提供友好而严谨的建议,以帮助读者熟悉Git的许多功能。
本书在上一版的基础之上进行了全面更新,包含了操作树的技巧,全面覆盖了reflog和stash的用法,还全面介绍了GitHub。一旦你掌握了Git系统的灵活性之后,就可以用近乎无限的方式来管理代码开发,而本书则会告诉你怎么来做。
· 学习如何在多个真实的开发场景中使用Git;
· 深入理解Git的常见用例、初始任务以及基本功能;
· 针对集中式和分布式版本控制而使用Git系统;
· 学习如何管理合并、冲突、补丁和差异;
· 应用高级技术,比如变基、钩子和处理子模块的方法;
· 与SVN仓库进行交互——其中包括SVN到Git的转换;
· 通过GitHub来导航、使用开源项目,并对开源项目做贡献。

  1. 第1章 介绍
  2. 1.1 背景
  3. 1.2 Git的诞生
  4. 1.3 先例
  5. 1.4 时间线
  6. 1.5 名字有何含义
  7. 第2章 安装Git
  8. 2.1 使用Linux上的二进制发行版
  9. 2.1.1 Debian/Ubuntu
  10. 2.1.2 其他发行版
  11. 2.2 获取源代码
  12. 2.3 构建和安装
  13. 2.4 在Windows上安装Git
  14. 2.4.1 安装Cygwin版本的Git
  15. 2.4.2 安装独立的Git(msysGit)
  16. 第3章 起步
  17. 3.1 Git命令行
  18. 3.2 Git使用快速入门
  19. 3.2.1 创建初始版本库
  20. 3.2.2 将文件添加到版本库中
  21. 3.2.3 配置提交作者
  22. 3.2.4 再次提交
  23. 3.2.5 查看提交
  24. 3.2.6 查看提交差异
  25. 3.2.7 版本库内文件的删除和重命名
  26. 3.2.8 创建版本库副本
  27. 3.3 配置文件
  28. 3.4 疑问
  29. 第4章 基本的Git概念
  30. 4.1 基本概念
  31. 4.1.1 版本库
  32. 4.1.2 Git对象类型
  33. 4.1.3 索引
  34. 4.1.4 可寻址内容名称
  35. 4.1.5 Git追踪内容
  36. 4.1.6 路径名与内容
  37. 4.1.7 打包文件
  38. 4.2 对象库图示
  39. 4.3 Git在工作时的概念
  40. 4.3.1 进入.git目录
  41. 4.3.2 对象、散列和blob
  42. 4.3.3 文件和树
  43. 4.3.4 对Git使用SHA1的一点说明
  44. 4.3.5 树层次结构
  45. 4.3.6 提交
  46. 4.3.7 标签
  47. 第5章 文件管理和索引
  48. 5.1 关于索引的一切
  49. 5.2 Git中的文件分类
  50. 5.3 使用git add
  51. 5.4 使用git commit的一些注意事项
  52. 5.4.1 使用git commit --all
  53. 5.4.2 编写提交日志消息
  54. 5.5 使用git rm
  55. 5.6 使用git mv
  56. 5.7 追踪重命名注解
  57. 5.8 .gitignore文件
  58. 5.9 Git中对象模型和文件的详细视图
  59. 第6章 提交
  60. 6.1 原子变更集
  61. 6.2 识别提交
  62. 6.2.1 绝对提交名
  63. 6.2.2 引用和符号引用
  64. 6.2.3 相对提交名
  65. 6.3 提交历史记录
  66. 6.3.1 查看旧提交
  67. 6.3.2 提交图
  68. 6.3.3 提交范围
  69. 6.4 查找提交
  70. 6.4.1 使用git bisect
  71. 6.4.2 使用git blame
  72. 6.4.3 使用Pickaxe
  73. 第7章 分支
  74. 7.1 使用分支的原因
  75. 7.2 分支名
  76. 7.3 使用分支
  77. 7.4 创建分支
  78. 7.5 列出分支名
  79. 7.6 查看分支
  80. 7.7 检出分支
  81. 7.7.1 检出分支的一个简单例子
  82. 7.7.2 有未提交的更改时进行检出
  83. 7.7.3 合并变更到不同分支
  84. 7.7.4 创建并检出新分支
  85. 7.7.5 分离HEAD分支
  86. 7.8 删除分支
  87. 第8章 diff
  88. 8.1 git diff命令的格式
  89. 8.2 简单的git diff例子
  90. 8.3 git diff和提交范围
  91. 8.4 路径限制的git diff
  92. 8.5 比较SVN和Git如何产生diff
  93. 第9章 合并
  94. 9.1 合并的例子
  95. 9.1.1 为合并做准备
  96. 9.1.2 合并两个分支
  97. 9.1.3 有冲突的合并
  98. 9.2 处理合并冲突
  99. 9.2.1 定位冲突的文件
  100. 9.2.2 检查冲突
  101. 9.2.3 Git是如何追踪冲突的
  102. 9.2.4 结束解决冲突
  103. 9.2.5 中止或重新启动合并
  104. 9.3 合并策略
  105. 9.3.1 退化合并
  106. 9.3.2 常规合并
  107. 9.3.3 特殊提交
  108. 9.3.4 应用合并策略
  109. 9.3.5 合并驱动程序
  110. 9.4 Git怎么看待合并
  111. 9.4.1 合并和Git的对象模型
  112. 9.4.2 压制合并
  113. 9.4.3 为什么不一个接一个地合并每个变更
  114. 第10章 更改提交
  115. 10.1 关于修改历史记录的注意事项
  116. 10.2 使用git reset
  117. 10.3 使用git cherry-pick
  118. 10.4 使用git revert
  119. 10.5 reset、revert和checkout
  120. 10.6 修改最新提交
  121. 10.7 变基提交
  122. 10.7.1 使用git rebase -i
  123. 10.7.2 变基与合并
  124. 第11章 储藏和引用日志
  125. 11.1 储藏
  126. 11.2 引用日志
  127. 第12章 远程版本库
  128. 12.1 版本库概念
  129. 12.1.1 裸版本库和开发版本库
  130. 12.1.2 版本库克隆
  131. 12.1.3 远程版本库
  132. 12.1.4 追踪分支
  133. 12.2 引用其他版本库
  134. 12.2.1 引用远程版本库
  135. 12.2.2 refspec
  136. 12.3 使用远程版本库的示例
  137. 12.3.1 创建权威版本库
  138. 12.3.2 制作你自己的origin远程版本库
  139. 12.3.3 在版本库中进行开发
  140. 12.3.4 推送变更
  141. 12.3.5 添加新开发人员
  142. 12.3.6 获取版本库更新
  143. 12.4 图解远程版本库开发周期
  144. 12.4.1 克隆版本库
  145. 12.4.2 交替的历史记录
  146. 12.4.3 非快进推送
  147. 12.4.4 获取交替历史记录
  148. 12.4.5 合并历史记录
  149. 12.4.6 合并冲突
  150. 12.4.7 推送合并后的历史记录
  151. 12.5 远程版本库配置
  152. 12.5.1 使用git remote
  153. 12.5.2 使用git config
  154. 12.5.3 使用手动编辑
  155. 12.6 使用追踪分支
  156. 12.6.1 创建追踪分支
  157. 12.6.2 领先和落后
  158. 12.7 添加和删除远程分支
  159. 12.8 裸版本库和git推送
  160. 第13章 版本库管理
  161. 13.1 谈谈服务器
  162. 13.2 发布版本库
  163. 13.2.1 带访问控制的版本库
  164. 13.2.2 允许匿名读取访问的版本库
  165. 13.2.3 允许匿名写入权限的版本库
  166. 13.2.4 在GitHub上发布版本库
  167. 13.3 有关发布版本库的建议
  168. 13.4 版本库结构
  169. 13.4.1 共享的版本库结构
  170. 13.4.2 分布式版本库结构
  171. 13.4.3 版本库结构示例
  172. 13.5 分布式开发指南
  173. 13.5.1 修改公共历史记录
  174. 13.5.2 分离提交和发布的步骤
  175. 13.5.3 没有唯一正确的历史记录
  176. 13.6 清楚你的位置
  177. 13.6.1 上下游工作流
  178. 13.6.2 维护者和开发人员的角色
  179. 13.6.3 维护者-开发人员的交互
  180. 13.6.4 角色的两面性
  181. 13.7 多版本库协作
  182. 13.7.1 属于你自己的工作区
  183. 13.7.2 从哪里开始你的版本库
  184. 13.7.3 转换到不同的上游版本库
  185. 13.7.4 使用多个上游版本库
  186. 13.7.5 复刻项目
  187. 第14章 补丁
  188. 14.1 为什么要使用补丁
  189. 14.2 生成补丁
  190. 14.3 邮递补丁
  191. 14.4 应用补丁
  192. 14.5 坏补丁
  193. 14.6 补丁与合并
  194. 第15章 钩子
  195. 15.1 安装钩子
  196. 15.1.1 钩子示例
  197. 15.1.2 创建第一个钩子
  198. 15.2 可用的钩子
  199. 15.2.1 与提交相关的钩子
  200. 15.2.2 与补丁相关的钩子
  201. 15.2.3 与推送相关的钩子
  202. 15.2.4 其他本地版本库的钩子
  203. 第16章 合并项目
  204. 第17章 子模块最佳实践
  205. 第18章 结合SVN版本库使用Git
  206. 第19章 高级操作
  207. 第20章 提示、技巧和技术
  208. 第21章 Git和GitHub
书名:Git版本控制管理(第2版)
译者:王迪, 丁彦 等译
国内出版社:人民邮电出版社
出版时间:2015年01月
页数:386
书号:978-7-115-38243-6
原版书书名:Version Control with Git, 2e
原版书出版商:O'Reilly Media
Jon Loeliger
 
Jon Loeligher,Freescale半导体公司的软件工程师,从事开源项目的工作,比如Git、Linux和U-Boot。他在Linux World等会议上公开讲授Git,而且还经常为Linux Magazine撰写稿件。
 
 
Matthew McCullough
 
Matthew McCullough,GitHub培训项目的VP,有15年的企业软件开发经验,而且还是一名开源教育家。Matthew是O’Reilly Git Master Class系列的创始人。