下载中心
Git高手之路 (纳热布斯基)pdf
1星 发布者: 抛砖引玉

2023-10-26 | 2积分 | 263.35MB |  7 次下载

下载 收藏 评论

文档简介
标签: git

git

Git是一 款免费、开源的分布式版本控制系统,可以对或大或小的项目进行高效的版本管理。时 * 今 日,Git已经在项目开发领域发挥着重要作用,并且得到了广泛的应用。

本书旨在帮助读者深入理解Git架构,以及其内部的理念、行为和* 佳实践。全书共分为12章,从基础知识讲起,陆续介绍了项目历史管理、使用Git进行程序开发、工作区管理、Git协作开发、分支应用进阶、集成变更、历史记录管理、子项目管理、Git的定制和扩展、Git日常管理、Git* 佳实践等内容。

本书面向所有的Git用户,全面细致地向读者介绍有关Git的各项实用技巧,充分发掘它的潜力,更好地实现项目版本管理。

* 1章 Git应用入门 1

1.1 版本控制与Git 1

1.2 Git简易示例 2

1.2.1 创建版本库 2

1.2.2 创建Git版本库 3

1.2.3 克隆版本库并添加注释 4

1.2.4 发布修改 7

1.2.5 查看历史版本 7

1.2.6 重命名、移动文件 10

1.2.7 更新版本库(合并) 11

1.2.8 创建标签 12

1.2.9 解决合并冲突 14

1.2.10 添加和移除文件 17

1.2.11 撤销对单个文件的修改 18

1.2.12 创建新分支 19

1.2.13 合并分支(无冲突) 20

1.2.14 撤销未发布的合并 21

1.3 小结 22

* 2章 项目历史管理 23

2.1 有向无环图 23

2.1.1 提交整个工作 25

2.1.2 分支和标签 26

2.1.3 分支点 28

2.1.4 合并提交 28

2.2 修订内部查询 28

2.2.1 HEAD—* 新的修订版本 29

2.2.2 分支和标签的引用 29

2.2.3 SHA-1哈希码及其简化标识符 30

2.2.4 父引用 32

2.2.5 反向父引用—git的输出信息描述 32

2.2.6 reflog的简称 33

2.2.7 上游远程跟踪分支 34

2.2.8 根据提交信息查询修订 34

2.3 修订区间查询 35

2.3.1 单个修订内部查询 35

2.3.2 双点符号 35

2.3.3 多点符号—包含和排除修订 37

2.3.4 单个修订的修订区间 38

2.3.5 三点符号 38

2.4 历史记录查询 40

2.4.1 限制修订数量 40

2.4.2 元数据查询 40

2.4.3 修订内部变更查询 43

2.4.4 变更类型查询 44

2.5 单个文件历史记录 44

2.5.1 路径约束 45

2.5.2 历史简化 46

2.5.3 blame—查看文件历史记录详情 46

2.6 使用git bisect命令查找bug 48

2.7 日志的查询和格式化输出 50

2.7.1 预定义和用户自定义输出格式 51

2.7.2 包含、格式化和统计变更 52

2.7.3 贡献统计 54

2.7.4 查看文件修订 55

2.8 小结 56

第3章 使用Git进行程序开发 58

3.1 新建提交 58

3.1.1 新建提交的DAG视图 59

3.1.2 索引—提交的暂存区 60

3.1.3 查看已提交的变更 61

3.1.4 可查询的提交 71

3.1.5 修改提交 73

3.2 使用分支 75

3.2.1 新建分支 76

3.2.2 孤儿分支 77

3.2.3 分支的查询和切换 77

3.2.4 分支列表 80

3.2.5 分支的回退和复位 80

3.2.6 分支的删除 82

3.2.7 分支的重命名 83

3.3 小结 83

第4章 工作区管理 84

4.1 忽略文件 85

4.1.1 将文件刻意标记为不跟踪的 86

4.1.2 确定忽略文件类型 88

4.1.3 忽略文件列表 89

4.1.4 忽略跟踪文件内的变更 90

4.2 文件属性 91

4.2.1 配置Diff和merge 94

4.2.2 文件转换(内容过滤) 97

4.2.3 关键字替换表达式 99

4.2.4 其他内置属性 101

4.2.5 属性宏定义 101

4.3 使用reset命令修复错误 102

4.3.1 回退分支head 102

4.3.2 重置分支head和索引 103

4.3.3 丢弃变更和回退分支 105

4.3.4 安全模式重置—保留用户变更 106

4.4 隐藏暂存变更 108

4.4.1 使用git stash 108

4.4.2 隐藏和暂存区 109

4.4.3 暂存探幽 110

4.5 管理工作区和暂存区 112

4.5.1 查看文件和 113

4.5.2 搜索文件内容 114

4.5.3 撤销对文件的跟踪、暂存和修改 115

4.5.4 文件版本回退 116

4.5.5 清理工作区 117

4.6 多工作 118

4.7 小结 119

第5章 Git协作开发 120

5.1 协作工作流 120

5.1.1 空版本库 121

5.1.2 和其他版本库交互 122

5.1.3 中心式工作流 122

5.1.4 对等网络或者分支工作流 123

5.1.5 维护者和集成管理工作流 124

5.1.6 层级式(主从式)工作流 125

5.2 远程版本库管理 126

5.2.1 原生的远程版本库 127

5.2.2 浏览远程版本库 127

5.2.3 新建远程版本库 128

5.2.4 远程版本库信息更新 129

5.2.5 兼容不规则工作流 131

5.3 传输协议 132

5.3.1 本地传输 132

5.3.2 智能传输 134

5.3.3 使用bundle进行离线传输 136

5.3.4 远程版本库传输助手 142

5.3.5 凭据/密码管理 145

5.4 发布变更到上游 148

5.4.1 推送变更到公共版本库 148

5.4.2 生成pull请求 149

5.4.3 交换补丁 149

5.5 信任链 151

5.5.1 内容地址存储 152

5.5.2 轻量级标签、附注标签和签名标签 152

5.5.3 签名提交 154

5.5.4 合并签名标签(合并标签) 155

5.6 小结 157

第6章 分支应用进阶 158

6.1 分支的类型和用途 158

6.1.1 长期或者永 久性分支 159

6.1.2 短期分支 164

6.2 分支工作流和发布工程 165

6.2.1 预览或者主干分支工作流 165

6.2.2 节点或者渐进稳定性分支工作流 166

6.2.3 主题分支工作流 168

6.2.4 Git流—一种成功的Git分支模型 172

6.2.5 修复安全问题 173

6.3 远程版本库上分支间的交互 175

6.3.1 上游和下游 175

6.3.2 远程跟踪分支和refspec 176

6.3.3 fetch、pull和push 177

6.3.4 拉取、推送分支和标签 179

6.3.5 推送模式应用 181

6.4 小结 185

第7章 集成变更 186

7.1 集成变更的方法 186

7.1.1 合并分支 187

7.1.2 拷贝和应用变更集 191

7.1.3 分支变基 194

7.2 解决合并冲突 197

7.2.1 三路合并 198

7.2.2 检测失败的合并操作 199

7.2.3 避免合并冲突 203

7.2.4 处理合并冲突 205

7.3 小结 207

第8章 历史记录管理 209

8.1 Git内部机制简介 210

8.1.1 Git对象 210

8.1.2 Git的底层命令和高层命令 213

8.1.3 Git环境变量 213

8.2 重写修订历史 216

8.2.1 编辑* 后一次提交 217

8.2.2 交互式变基 218

8.2.3 外部工具—补丁管理接口 224

8.2.4 使用git filter-branch进行脚本化重写 225

8.2.5 用于重写大型项目历史记录的外部工具 231

8.2.6 重写已发布历史的风险 232

8.3 历史记录的非重写式编辑 236

8.3.1 还原提交 236

8.3.2 使用笔记存储附加信息 242

8.3.3 置换机制应用 249

8.4 小结 253

第9章 子项目管理—构建活动框架 254

9.1 管理库和框架的依赖 255

9.1.1 Git外部依赖管理 256

9.1.2 手工导入项目代码 257

9.1.3 包含子项目代码的Git子树 258

9.1.4 子模块解决方案—版本库嵌套 267

9.1.5 将子文件夹迁移到子树或者子模块中 279

9.1.6 子树和子模块 280

9.2 大型Git版本库管理 283

9.2.1 处理包含大量历史记录的版本库 283

9.2.2 处理包含大量二进制文件的版本库 285

9.3 小结 287

* 10章 Git的定制和扩展 288

10.1 Git与命令行 289

10.1.1 Git命令行提示符 289

10.1.2 Git命令自动补全 292

10.1.3 Git命令自动校正 293

10.1.4 命令行美化 294

10.1.5 命令行工具替代方案 294

10.2 图形化接口 295

10.2.1 图形化工具种类 295

10.2.2 图形化的diff和merge工具 296

10.2.3 图形化接口示例 298

10.3 配置Git 299

10.3.1 命令行选项和环境变量 299

10.3.2 Git配置文件 299

10.3.3 使用gitattribute配置单个文件 309

10.4 Git自动化钩子 311

10.4.1 安装Git钩子 312

10.4.2 版本库模板 312

10.4.3 客户端钩子 313

10.4.4 服务端钩子 318

10.5 Git扩展 319

10.5.1 Git命令行别名 319

10.5.2 添加新的Git命令 321

10.5.3 凭据助手和远程版本库助手 322

10.6 小结 322

* 11章 Git日常管理 323

11.1 版本库维护 324

11.2 数据恢复和故障诊断 325

11.2.1 恢复已丢弃的提交记录 325

11.2.2 Git故障诊断 327

11.3 Git服务端配置 328

11.3.1 服务端钩子 328

11.3.2 使用钩子实现Git强制策略 332

11.3.3 签名推送 334

11.3.4 Git版本库服务 335

11.3.5 Git版本库管理工具 339

11.3.6 版本库托管应用技巧 340

11.4 改进开发工作流 342

11.5 小结 342

* 12章 Git* 佳实践 343

12.1 启动项目 343

12.1.1 将工作分配到版本库 344

12.1.2 选择协作工作流 344

12.1.3 选择需要实行版本控制的文件 344

12.2 推进项目 345

12.2.1 使用主题分支 345

12.2.2 确定工作背景 346

12.2.3 将变更分解成独立的逻辑单元 347

12.2.4 编写简洁易读的注释 347

12.2.5 为提交变更做好准备 349

12.3 集成变更 349

12.3.1 提交和描述变更 349

12.3.2 审核变更的艺术 351

12.3.3 处理审核结果和评论 353

12.4 其他注意事项 353

12.4.1 不用慌,一切几乎都是可以恢复的 354

12.4.2 不要修改已发布的历史记录 354

12.4.3 版本发布的数字化和

标签化 354

12.4.4 尽可能自动化 355

12.5 小结 355

评论
相关视频
  • 直播回放: Keysight 小探头,大学问,别让探头拖累你的测试结果!

  • 控制系统仿真与CAD

  • MIT 6.622 Power Electronics

  • 直播回放:基于英飞凌AIROC™ CYW20829低功耗蓝牙芯片的无线组网解决方案

  • 直播回放:ADI & WT·世健MCU痛点问题探索季:MCU应用难题全力击破!

  • Soc Design Lab - NYCU 2023

推荐帖子
精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

×