前言
存储
Git的底层存储是以文件快照实现的,对版本的存储是通过文件快照整体进行存储,重复的文件通过指针索引源文件,不重复存储;而非SVN和CVS存储各版本文件之间的差异;
分支
分支(Branch),是Git依靠底层文件快照存储系统为上层服务提供的解决方案;解决项目中同时存在多个父子版本在交叉进行创建版本和合并版本的需求;
分支存在于各个版本库中(本地版本库&远程版本库),个人认为有必要在实际操作之前先了解一下分支的概念;
我们在实际操作中,不论是是在命令行还是在IDEA,都会经常看见类似的关键字:origin、master、origin/master;这些都是跟分支相关的关键字;
存储过程
这一切我们从提交这个操作开始说起:
提交对象
Git针对每次提交都会生成一个提交对象,这个提交对象的内容有:
1、一个指向文件快照的指针;
2、本次提交的相关信息;
3、指向父对象的指针
(该指针为零或多个:初次提交没有父对象,合并操作会有多个父对象);
如上图所示:
三次提交生成提交对象:commitA、commitB、commitC;
每个提交对象都有一个对应的文件快照,该文件快照记录着当前提交完成后版本库的文件状态;
除了第一次提