Git学习指南

Git学习指南

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书适合从事项目开发的专业人士阅读,想要学习Git的读者也可以选用。

内容简介

Git是一款免费、开源的分布式版本控制系统,也是当今流行的版本控制系统之一,在众多的项目开发中普遍使用,得到程序员和工程师的欢迎和喜爱。

本书是一本面向专业开发者的图书。全书内容分为26章,从基础概念讲起,陆续向读者介绍了有关Git的各种操作和使用技巧,不仅将提交、版本库、分支、合并等命令讲解到位,还介绍了工作流、基于分支的开发、二分法排错、发行版交付、项目的拆分与合并、项目的迁移等内容。

作者简介

作者普莱·贝尔,德国杰出软件开发人员。

章节目录

版权信息

内容提要

前言

第1章 基本概念

1.1 分布式版本控制,有何过人之处

1.2 版本库,分布式工作的基础所在

1.3 分支的创建与合并很简单

1.4 本章小结

第2章 入门

2.1 准备Git环境

2.2 第一个Git项目

2.2.1 创建版本库

2.2.2 首次提交

2.2.3 检查状态

2.2.4 提交修改

2.2.5 显示历史

2.3 Git的协作功能

2.3.1 克隆版本库

2.3.2 从另一版本库中获取修改

2.3.3 从任意版本库中取回修改

2.3.4 创建共享版本库

2.3.5 用push命令上载修改

2.3.6 Pull命令:取回修改

2.4 本章小结

第3章 提交究竟是什么

3.1 访问权限与时间戳

3.2 add命令与commit命令

3.3 再谈提交散列值

3.4 提交历史

3.5 一种略有不同的提交查看方法

3.6 同一项目的多部不同历史

3.6.1 部分输出:-n

3.6.2 格式化输出:--format、--oneline

3.6.3 统计修改信息:--stat、--shortstat

3.6.4 日志选项:--graph

3.7 本章小结

第4章 多次提交

4.1 status命令

4.2 存储在暂存区中的快照

4.3 怎样的修改不该被提交

4.4 用.gitignore忽略非版本控制文件

4.5 储藏

4.6 本章小结

第5章 版本库

5.1 一种简单而高效的存储系统

5.2 存储目录:Blob与Tree

5.3 相同数据只存储一次

5.4 压缩相似内容

5.5 当不同文件的散列值相同时,情况会很糟糕吗

5.6 提交对象

5.7 提交历史中的对象重用

5.8 重命名、移动与复制

5.9 本章小结

第6章 分支

6.1 并行式开发

6.2 修复旧版本中的bug

6.3 分支

6.4 泳道

6.5 当前活跃分支

6.6 重置分支指针

6.7 删除分支

6.8 清理提交对象

6.9 本章小结

第7章 合并分支

7.1 合并过程中发生的事

7.2 冲突

7.3 编辑冲突

7.4 冲突标志

7.5 解决编辑冲突

7.6 内容冲突又是什么呢

7.7 快进合并

7.8 第一父级提交历史

7.9 棘手的合并冲突

7.10 无论如何,终会有可行的方式

7.11 本章小结

第8章 通过变基净化历史

8.1 工作原理:复制提交

8.2 避免“钻石链”

8.3 什么情况下会遇到冲突呢

8.4 移植分支

8.5 执行变基后原提交的情况

8.6 为什么提交的原件与副本存在于同一版本库中是有问题的

8.7 捡取

8.8 本章小结

第9章 版本库间的交换

9.1 克隆版本库

9.2 如何告知Git其他版本库的位置

9.3 给别处的版本库起个名字

9.4 获取数据

9.5 远程跟踪分支:监控其他分支

9.6 利用本地分支操作别处的版本库

9.7 Pull = Fetch + Merge

9.8 讨厌钻石链的人:请用--rebase选项

9.9 push:pull的反面

9.10 命名分支

9.11 本章小结

第10章 版本标签

10.1 创建标签

10.2 当前究竟存在哪些标签

10.3 打印标签的散列值

10.4 将标签添加到日志输出中

10.5 究竟在哪个版本里呢

10.6 如何修改标签呢

10.7 当我们需要一个浮动标签时

10.8 本章小结

第11章 版本库之间的依赖

11.1 与子模块之间的依赖

11.2 与子树之间的依赖

11.3 本章小结

第12章 技巧

12.1 不要慌,我们有一个引用日志

12.2 忽略临时性的本地修改

12.3 检查对文本文件的修改

12.4 别名——Git命令的快捷方式

12.5 为临时指向的提交创建分支

12.6 将提交移动到另一分支

第13章 工作流简介

13.1 我们会在什么时候使用这些工作流呢

13.1.1 项目开始阶段

13.1.2 项目开发阶段

13.1.3 项目交付阶段

13.1.4 项目重构阶段

13.2 工作流的结构

13.2.1 条目

13.2.2 概述

13.2.3 使用要求

13.2.4 工作流简述

13.2.5 执行过程及其实现

13.2.6 何不换一种做法

第14章 项目设置

14.1 概述

14.2 使用要求

14.3 工作流简述:设置项目

14.4 执行过程及其实现

14.4.1 基于项目目录创建一个新的版本库

14.4.2 以文件访问的方式共享版本库

14.4.3 用Git daemon来共享版本库

14.4.4 用HTTP协议来共享版本库

14.4.5 用SSH协议来共享版本库

14.5 何不换一种做法

何不放弃推送操作

14.6 纯拉取操作

第15章 相同分支上的开发

15.1 概述

15.2 使用要求

15.3 工作流简述:相同分支上的开发

15.4 执行过程及其实现

在master分支上操作

15.5 何不换一种做法

何不用变基来代替合并

第16章 基于特性分支的开发

16.1 概述

16.2 使用要求

16.3 工作流简述:基于特性分支的开发

16.4 执行过程及其实现

16.4.1 创建特性分支

16.4.2 在master分支上集成某一特性

16.4.3 将master分支上所发生的修改传递给特性分支

16.5 何不换一种做法

16.5.1 何不直接在部分交付后的合并版本上继续后续工作

16.5.2 何不到发行版即将成型时再集成特性分支

16.5.3 何不交换特性分支之间的提交

第17章 二分法排错

17.1 概述

17.2 使用要求

17.3 工作流简述:二分法排错

17.4 执行过程及其实现

17.4.1 用二分法人工排错

17.4.2 用二分法自动排错

17.5 何不换一种做法

何不用合并操作将测试脚本添加到旧提交中去

第18章 基于构建服务器的工作

18.1 概述

18.2 使用要求

18.3 工作流简述:基于构建服务器的工作

18.4 执行过程及其实现

18.4.1 预备构建服务器

18.4.2 构建服务器上的Git

18.4.3 比对本地开发版本与最后成功构建版本之间的差异

18.4.4 基于构建历史的排错

18.5 何不换一种做法

18.5.1 何不使用标签

18.5.2 何不将构建历史放在中央版本库中

第19章 发行版交付

19.1 概述

19.2 使用要求

19.3 工作流简述:“发行版交付”

19.4 执行过程及其实现

19.4.1 预备阶段:创建stable分支

19.4.2 预备并创建发行版

19.4.3 创建补丁

19.5 何不换一种做法

19.5.1 为什么不能只用标签

19.5.2 何不干脆不用标签

19.5.3 为什么不能用快进式合并

19.5.4 为什么不直接在stable分支上实现补丁

第20章 拆分大项目

20.1 概述

20.2 使用要求

20.3 工作流简述:“拆分大项目”

20.4 执行过程及其实现

20.4.1 拆分模块版本库

20.4.2 将拆分出的模块作为外部版本库集成

20.5 何不换一种做法

20.5.1 何不采用一个全新的版本库

20.5.2 为什么不采用 --subdirectory-filter选项

第21章 合并小型项目

21.1 概述

21.2 使用要求

21.3 工作流简述:“合并小项目”

21.4 执行过程及其实现

合并版本库

21.5 何不换一种做法

为什么不直接合并,跳过创建项目文件目录

第22章 外包长历史记录

22.1 概述

22.2 使用要求

22.3 工作流简述:“外包长历史记录”

22.4 执行过程及其实现

22.4.1 外包项目历史

22.4.2 链接到当前活动版本库

22.5 何不换一种做法

为什么不获取档案版本库(而是采用链接)

第23章 与其他版本控制系统并行使用

23.1 概述

23.2 使用要求

23.3 工作流简述:“与其他版本控制系统并行使用”

23.4 执行过程及其实现

23.4.1 初始部署版本库

23.4.2 得到中央版本控制管理中的更新修改

23.4.3 将修改提交传输到中央本版控制系统

23.5 何不换一种做法

为什么不选择一个Git版本库

第24章 迁移到Git

24.1 概述

24.2 使用要求

24.3 工作流简述:“迁移到Git”

24.4 执行过程及其实现

24.4.1 学习和练习使用Git

24.4.2 做出迁移的决定

24.4.3 找到分支

24.4.4 准备版本库

24.4.5 获取分支

24.4.6 以怀疑的态度使用接受这个版本库

24.4.7 清理工作

24.5 何不换一种做法

24.5.1 为什么不接收整个项目历史

24.5.2 是否可以没有遗产分支

24.5.3 没有双版本控制工作区可以吗

第25章 还有一些其他任务

25.1 交互式变基操作——完善历史记录

25.2 补丁处理

25.3 用E-mail发送补丁

25.4 打包操作——离线模式下的推送操作

25.5 创建归档

25.6 Git的图形化工具

25.7 与Subversion的协作

25.8 命令别名

25.9 标注提交

25.10 用钩子扩展Git

25.11 将版本库托管到Github上

第26章 Git的缺点

26.1 高复杂度

26.2 复杂的子模块

26.3 大型二进制文件的资源消耗

26.4 版本库只能作为一个整体被处理

26.5 版本库只能作为整体被授权

26.6 能用于历史分析的图形化工具偏弱

Git学习指南是2016年由人民邮电出版社出版,作者[德]普莱·贝尔。

得书感谢您对《Git学习指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
HCNP路由交换学习指南 电子书
1.针对HCNP级别的每项网络技术知识做单独、细致的讲解,易于学习且可读性强。 2.详细讲述每个技术的来龙去脉以及各个技术解决方案中相关的联系,让读者知其然,也知其所以然。 3.以典型企业网络为模型,细致介绍每种网络技术的原理及应用。 4.每个章节都附有练习题、思考题以及答案,供读者对技术问题加深思考,总结回顾。 5.本书为华为官方出版的认证培训实验教材。
华为HCIA-Datacom学习指南 电子书
本书共17章,主要包括数据通信与网络基础、构建互联互通的IP网络、构建以太交换网络、网络安全基础与网络接入、网络服务与应用、WLAN基础、广域网基础、网络管理与运维、IPv6基础、SDN,以及自动化运维基础十大模块。本书内容丰富且系统全面、原理剖析深入、配置思路清晰,不仅有专业的网络技术基础知识介绍,还有深入浅出的技术原理解剖。
HCIA-HarmonyOS应用开发学习指南 电子书
本书首先对HarmonyOS和OpenHarmony进行概述,同时阐述了两者的区别,其次讲解了HarmonyOS应用开发的流程以及常备的开发基础知识,接着介绍了基于JSUI框架以及丰富的组件快速开发应用程序UI的方法,然后针对HarmonyOS的接口能力进行了详细说明,还介绍了JavaPA开发,包括Service开发、JS和Java的混合开发(JSFA调用JavaPA)、数据库及DataAbili
Java编程入门:任务式学习指南 电子书
本书适用于Java编程语言的初学者。在Java入门阶段很容易陷入概念繁杂和不知道从何入手的尴尬。本书定位于Java程序逻辑训练,以完成任务的方式一步步进行知识点讲解,*终完成任务验收,以任务拆解学习过程,学习目的性更强。每个任务以任务描述→目标→任务线索→任务实施→验收标准→问题总结→扩展阅读的主线展开,线索学习成为任务完成的关键点,让读者在具体任务的完成过程中进行Java程序逻辑入门学习,除了收
华为HCNA路由与交换学习指南 电子书
专门介绍华为认证网络工程师(HCNA)路由与交换技术的相关内容。