《Git软件开发实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)Brent Laster著;蒲成译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302479918
  • 页数:405 页
图书介绍:本书详细介绍了使用Git管理软件开发生命周期的方方面面,包括Git相对传统版本管理系统的优势、安装Git、基本的Git命令和概念、文件管理和索引、提交、分支、合并、更改提交、储藏和引用日志、远程版本库、版本库管理等。

第Ⅰ部分 理解Git相关概念 3

第1章 什么是Git 3

1.1Git的历史 4

1.2行业标准工具 4

1.3Git生态系统 5

1.3.1核心的Git 5

1.3.2Git托管站点 6

1.3.3自托管软件包 7

1.3.4易用的包 7

1.3.5插件 9

1.3.6包含Git的工具 9

1.3.7Git库 9

1.4Git的优势和挑战 10

1.4.1优势 10

1.4.2挑战 12

1.5本章小结 15

第2章 关键概念 17

2.1设计概念:面向用户的 17

2.1.1集中式模型 17

2.1.2分布式模型 18

2.2设计概念:内部的 19

2.2.1差异增量存储 20

2.2.2快照存储 20

2.2.3Git的存储需求 21

2.3仓库设计注意事项 22

2.3.1仓库范围 23

2.3.2文件范围 24

2.3.3共享代码 25

2.4本章小结 26

第3章 Git升级模型 27

3.1Git的级别 27

3.1.1开发-测试-生产和Git 27

3.1.2移动内容的核心Git命令 34

3.2本章小结 36

3.3关于连接实验课程1:安装Git 36

连接实验课程1:安装Git 37

第Ⅱ部分 使用Git 43

第4章 配置和设置 43

4.1在Git中执行命令 43

4.1.1操作数类型 44

4.1.2高层命令和底层命令的对比 45

4.1.3指定参数 47

4.1.4自动完成 47

4.2配置Git 48

4.2.1告知Git你的身份 49

4.2.2配置范围 50

4.2.3默认的编辑器 53

4.2.4设置行结束符 54

4.2.5别名 55

4.2.6Windows文件系统缓存 56

4.3初始化仓库 56

4.3.1git init 56

4.3.2git clone 57

4.4高级主题 58

4.4.1git init揭秘 58

4.4.2进一步深入了解Git仓库 59

4.4.3将config命令映射到配置文件 60

4.4.4创建参数化别名 61

4.5本章小结 63

第5章 变得高效 65

5.1获得帮助 65

5.2多仓库模型 67

5.3添加内容以便追踪——add 69

5.4完成变更——提交 77

5.4.1先决条件 78

5.4.2提交范围 79

5.5将一切结合在一起 79

5.5.1修正提交 80

5.5.2提交的结果 82

5.6高级主题 84

5.6.1使用-verbose选项 85

5.6.2完整的消息提交过程 85

5.6.3自动更正和自动执行 86

5.7本章小结 87

5.8关于连接实验课程2:创建和探究Git仓库并且管理内容 87

连接实验课程2:创建和探究Git仓库并且管理内容 89

第6章 追踪变更 95

6.1git status 95

6.1.1具有状态的工作流示例 96

6.1.2status命令的简要形式 100

6.2git diff 102

6.2.1Git中的重要符号名称 102

6.2.2如何思考Git进行对比的方法 102

6.2.3仅显示有差异的文件名称 107

6.2.4word-diff 107

6.2.5忽略非关键变更 107

6.2.6对比两次提交 109

6.2.7可视化对比 111

6.2.8其他的对比技巧 114

6.3本章小结 115

6.4连接实验课程3:通过文件状态生命周期追踪内容 116

连接实验课程3:通过文件状态生命周期追踪内容 117

第7章 处理随时间推移而出现的变更以及使用标签 121

7.1log命令 121

7.1.1常用的显示和过滤选项 122

7.1.2时间限制选项 123

7.1.3按文件和路径显示历史 124

7.1.4日志输出格式 125

7.1.5搜索历史 126

7.2git blame 127

7.3可视化地查看历史 130

7.4标签 131

7.4.1查看标签详情 132

7.4.2修改标签 132

7.4.3简单的标签示例 133

7.5撤消历史中的变更 134

7.5.1reset——回滚变更 134

7.5.2完全重置本地环境 135

7.5.3revert——消除变更 136

7.6高级主题 139

7.6.1签署提交和标签 139

7.6.2引用日志 141

7.7本章小结 143

7.8关于连接实验课程4:使用Git历史、标签和别名 143

连接实验课程4:使用Git历史、标签和别名 145

第8章 处理本地分支 149

8.1什么是分支? 149

8.1.1来自另一个源管理系统的示例 150

8.1.2分支的Git模型 150

8.1.3创建一个分支 151

8.1.4签出一个分支 152

8.1.5将内容添加到分支 153

8.1.6一个工作目录——多个分支 154

8.1.7获得关于分支的信息 157

8.1.8删除或重命名一个分支 158

8.1.9使用分支进行开发 161

8.2高级主题 167

8.2.1签出非分支提交 168

8.2.2签出单独的文件 173

8.3本章小结 174

8.4连接实验课程5:处理分支 174

连接实验课程5:处理分支 175

第9章 合并内容 177

9.1合并的基础 177

9.1.1merge命令 178

9.1.2为合并做准备 178

9.1.3合并的类型 178

9.1.4变基——合并历史 182

9.1.5樱桃拣选 185

9.1.6樱桃拣选和变基之间的差异 188

9.1.7合并操作 189

9.2处理冲突 192

9.2.1合并处理是一种状态 192

9.2.2冲突的错误消息 193

9.2.3终止操作 194

9.2.4处理冲突——工作流 194

9.2.5解决选项和策略 198

9.3可视化合并 203

9.3.1选择一款合并工具 205

9.3.2让合并工具可供Git使用 206

9.4高级主题 206

9.4.1用于冲突标记的可选样式 207

9.4.2高级变基场景 208

9.4.3交互式变基 213

9.5本章小结 220

9.6连接实验课程6:合并实践 220

连接实验课程6:合并实践 221

第10章 Git中的支持文件 223

10.1Git属性文件 224

10.1.1Git属性文件的作用 224

10.1.2Git属性的范围 224

10.1.3文件格式 226

10.1.4常见用例 226

10.1.5获取文件的属性信息 232

10.2Git忽略文件 233

10.2.1Git忽略的范围 233

10.2.2文件格式 234

10.2.3获取文件的忽略信息 236

10.3本章小结 236

第11章 用Git做更多的事情 239

11.1修改本地环境中文件和目录的布局 239

11.1.1储藏 240

11.1.2暂存命令 246

11.1.3mv 246

11.1.4rm 247

11.2用于搜索的命令 248

11.2.1grep 248

11.2.2Git日志搜索 251

11.3为变更处理补丁和存档 253

11.3.1archive 254

11.3.2bundle 254

11.3.3通过电子邮件共享补丁 256

11.3.4apply 257

11.3.5am 257

11.3.6用邮件发送补丁文件 258

11.4用于清理的命令 260

11.4.1clean 260

11.4.2gc 262

11.4.3notes 263

11.5高级主题 265

11.5.1fiilter-branch 265

11.5.2rev-list 265

11.5.3bisect 272

11.5.4rerere 279

11.6本章小结 287

11.7连接实验课程7:删除、重命名和储藏 287

连接实验课程7:删除、重命名和储藏 289

第12章 理解远程——分支和操作 293

12.1远程 293

12.1.1远程访问协议 295

12.1.2remote命令 297

12.1.3Git如何与远程环境交互 299

12.1.4远程追踪分支 299

12.1.5gitclone 300

12.1.6查看关于远程分支的信息 303

12.1.7push 307

12.1.8fetch 315

12.1.9pull 317

12.2本章小结 320

12.3连接实验课程8:设置GitHub账户并且克隆仓库 320

连接实验课程8:设置GitHub账户并且克隆仓库 321

第13章 理解远程——变更工作流 323

13.1Git中基本的冲突以及合并解决工作流 324

13.2托管仓库 336

13.2.1用于使用Git进行协作的模型 336

13.2.2对所有内容进行汇总 340

13.3本章小结 341

13.4连接实验课程9:对远程仓库使用整体工作流 342

连接实验课程9:对远程仓库使用整体工作流 343

第14章 处理Git中的树和模块 347

14.1工作树 347

14.1.1添加一棵工作树 348

14.1.2列出工作树 350

14.1.3精简工作树 351

14.2子模块 352

14.2.1理解子模块如何工作 353

14.2.2添加子模块 353

14.2.3判定子模块状态 355

14.2.4处理多个子模块 359

14.2.5从子模块的远程更新子模块 359

14.2.6查看子模块差异 361

14.2.7超级项目与子模块对比 362

14.2.8子模块的问题 364

14.2.9更新子模块引用 365

14.2.10在超级项目被更新后更新子模块 366

14.2.11推送来自子模块的变更 368

14.2.12子模块与合并 369

14.2.13注销一个子模块 370

14.3子树 370

14.3.1添加一个项目作为子树 371

14.3.2更新子树 374

14.3.3使用子树分隔功能 374

14.3.4从分隔内容中创建一个新的项目 375

14.3.5子树推送 376

14.4本章小结 376

14.5连接实验课程 376

14.5.1连接实验课程10:使用工作树 376

14.5.2连接实验课程11:使用子模块 376

14.5.3连接实验课程12:使用子树 377

连接实验课程10:使用工作树 379

连接实验课程11:使用子模块 381

连接实验课程12:使用子树 385

第15章 使用Git挂钩程序扩展Git功能 389

15.1安装挂钩 389

15.2更新挂钩 390

15.3常用挂钩属性 391

15.3.1挂钩域 391

15.3.2控制工作流的返回码 391

15.3.3工作目录访问 392

15.3.4环境变量 392

15.4挂钩描述 392

15.4.1applypatch-msg 393

15.4.2pre-applypatch 393

15.4.3post-applypatch 393

15.4.4pre-commit 393

15.4.5prepare-commit-msg 395

15.4.6commit-message 396

15.4.7post-commit 398

15.4.8pre-rebase 399

15.4.9post-checkout 399

15.4.10post-merge 399

15.4.11pre-push 400

15.4.12pre-receive 400

15.4.13update 401

15.4.14post-receive 401

15.4.15post-update 402

15.5其他挂钩 403

15.5.1push-to-checkout 403

15.5.2pre-auto-gc 403

15.5.3post-rewrite 403

15.6挂钩快速参考 403

15.7本章小结 405