1、知识体系
Git知识体系大致分为以下四个部分
- 工作相关区域
- 版本库:本地版本库,模块化版本库,远程版本库
- 暂存区:增,删,重命名,查询,还原
- 类似栈区:stash,它其实是一个引用,操作和栈基本相同。
- 核心对象:需把Git看做是数据库。基本操作都是增,删,改,查。
- commit:commit对象,增,改,查。虽然可以删除,但是不建议删除。
- blob:blob对象,根据文件的内容计算唯一的Hash值。终端用户不操作。
- tree:tree对象,每一个树对象对应一个工作目录,或者是一个版本库的快照。终端用户不操作。
- tag:tag对象,标签用于快速访问。
- 核心概念:
- branch:分支,操作有增,删,改,查,检出,合并,追踪等。
- drg:有向无环图,提交历史,是最复杂的一部分。
- patch:补丁。它不适用于同一公司中的项目,更适用于开源项目,来源于不同爱好者的提交。
- hook:钩子。建立命令生命周期的概念,在其中添加各种操作。类似于Vue的created,updated这些。Git大部分命令是shell脚本写的,本人不会,略。
- 服务器
- 私人服务器:搭建私服。
- 开源的服务器:最有名的是GitHub。
- 杂项:只做了解即可。
- 整合SVN:如何将SVN版本库转换为Git版本库。
- 底层命令:深入研究Git的运作机理,研究tree对象,blob对象,commit对象的底层命令等。
2、原著
本博客系列是《Version control with Git》第二版的阅读笔记。非常感谢本书,让我以数据库的角度去了解,学习Git。
原著总共有20个章节。
- 第一章节介绍Git的历史。
- 第二章节介绍Git的安装。
- 第三章节演示HelloWorld示例
- 第四章节介绍核心对象。
- 第五章节介绍Index
- 第六章节介绍commit对象
- 第七章节介绍分支。
- 第八章节介绍diff命令。它基本不再使用,是因为有很多优秀的对比工作可以替代它。
- 第九章节介绍分支的合并。
- 第十章节介绍DRG的操作,修改提交历史的一些命令,例如rebase, cherry-pick, reset等
- 第十一章节介绍stash和reflog
- 第十二章节介绍远程版本库
- 第十三章节介绍Git服务器
- 第十四章节介绍补丁。
- 第十五章节介绍hook。略
- 第十六,十七章节介绍模块化版本库。
- 第十八章节介绍将SVN版本库转换为Git。略。
- 第十九章节介绍高级操作。
- 第二十章节介绍一些技巧。
无论阅读Git的哪些著作,Git指令的帮助手册都是必读的,因为最后的任何操作都是指令。输入git command_name --help即可查阅该命令的帮助手册。
3、链接
Git官网:https://git-scm.com/。
Git UI工具:https://git-scm.com/download/gui/windows,个人推荐使用乌龟和Git extension。