当前位置: 100md首页 > 电子书籍 > 资料下载2021 >
编号:46970
Git权威指南第三版最新.pdf
http://www.100md.com 2020年11月10日
第1页
第4页
第14页
第22页
第41页

    参见附件(50976KB,627页)。

    《Git权威指南》是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是*的版本控制专家和咨询顾问之一,本书得到了Git官方维护者JunioC Hamano和ITeye创始人范凯(Robbin)先生等数位专家的高度认可和极力推荐,性毋庸置疑。

    内容简介

    全书一共9篇,共41章和4个附录,内容几乎涵盖了Git的所有方面。篇介绍了版本控制工具的演变历史、Git的各种优点,以及它在3种主流操作系统中的安装与配置。第2篇和第3篇既是本书的基础,又是本书的核心,不仅介绍了Git的操作和使用,而且还讲解了Git的原理。第2篇详细讲解了个人用户如何使用Git,包括Git初始化、日常操作、暂存区、对象、重置、检出、恢复进度、历史变更、克隆、库管理等;第3篇详细讲解了Git协议和团队如何使用Git,包括Git支持的协议、冲突解决、里程碑、分支、远程版本库和补丁文件交互等。第4篇全面介绍了Git的协同模型,即它在实际工作中的使用模式,包括各种经典的Git协同模型、Topgit协同模型、子模组协同模型、子树合并、Android多版本库协同、Git与SVN协同模型等。第5篇介绍了Git服务器的架设,首先讲解了协议、Git协议、SSH协议的使用,然后讲解了Gitolite、Gitosis、Gerrit等服务器的架设方法,后还讲解了Git版本库的托管。第6篇介绍了版本库的迁移,包括如何从CVS、SVN、Hg等版本库迁移到Git,以及Git版本库整理等方面的内容。第7篇讲解了Git的其他应用,包括etckeeper、Gistore等的安装、配置和使用,以及补丁中的二进制文件和云存储等内容。第8篇介绍了Git的跨平台操作,以及它的钩子和模板、稀疏检出和浅克隆、嫁接和替换等重要特性。第9篇是附录,详细给出了Git的命令索引,以及CVS、SVN和Hg与Git的比较与命令对照,方便读者查阅。

    作者简介

    蒋鑫,新的版本控制专家和咨询顾问之一,对Subversion和Git等版本控制工具有十分深入的研究,参与了Git以及Gitosis、Gitolite、Repo、Topgit、Gistore等与Git相关的开源软件的开发或创建,在大量实践中积累了丰富的经验。此外,他还是一位开源软件实践者,作为北京群英汇信息技术有限公司的创始人兼高级顾问,一直从事开源软件的定制以及面向研发团队的项目管理软件的推广和顾问咨询工作,致力于推动开源软件在中国的发展。

    本书目录

    前 言

    第1篇 初识Git

    第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 安装 Xcode/ 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独奏

    第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 思考:SHA1 哈希值到底是什么,是如何生成的/ 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 浏览日志:git log/ 146

    11.4.4 差异比较:git diff/ 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和声

    第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 创建分支 user1/getopt/ 261

    18.4.2 创建分支 user2/i18n/ 262

    18.4.3 开发者 user1 完成功能开发/ 263

    18.4.4 将 user1/getopt 分支合并到主线/ 264

    18.5 基于发布分支的开发/ 265

    18.5.1 创建发布分支/ 266

    18.5.2 开发者 user1 工作在发布分支/ 267

    18.5.3 开发者 user2 工作在发布分支/ 268

    18.5.4 开发者 user2 合并推送/ 270

    18.5.5 发布分支的提交合并到主线/ 271

    18.6 分支变基/ 275

    18.6.1 完成 user2/i18n 特性分支的开发/ 275

    18.6.2 分支 user2/i18n 变基/ 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 St...

    Git权威指南第三版截图