Git核心:从快照到分支
快照概念
首先先阅读 https://www.zhihu.com/question/20374919“木头龙”的回答
- 快照是什么? 快照 Snapshot: 某一时刻数据的状态
- 为什么要快照?
- 快
- 记录
- 快照的实现 快照通过记录逻辑地址的位置,进而记录物理地址,由于逻辑地址较少,因此生成的快照又快又小
读“木头龙”回答的几个注意点:
- 为什么需要锁定物理单元内容?
对物理单元内容上锁,其他应用就不能执行写操作,这样做的目的有: 一、可以在保存快照的时候,内容不会被改变; 二、锁定后,对该物理单元内容的改变将会在新的地址进行
- 快照地址跟物理单元是分不开的
可以看到快照地址和物理单元内容是分不开的,也就是说,生成的快照和原文件是存放在一起的
这里就是快照和备份的一个区别了,备份和原文件是独立的,而快照和原文件是息息相关的。
Git 的快照流
如果你理解了上一节,那么对于 Git 就明白许多了,在 Git 之前的版本控制做的更多的是一个对变化的文档进行备份,每次消耗的时间和空间比较大,而 Git 做的是一个快照,消耗较少,所以这也就是为什么说 Git 版本控制下的文件是一个 ** 快照流(stream of snapshots)** 了
Git 的分支
当你理解完快照和 Git 的快照流之后,继续看 Git 官方文档,了解关于分支的这一块 [https://Git-scm.com/book/zh/v2/Git-% E5%88%86% E6%94% AF-% E5%88%86% E6%94% AF% E7% AE%80% E4% BB%8 B](https://Git-scm.com/book/zh/v2/Git-% E5%88%86% E6%94% AF-% E5%88%86% E6%94% AF% E7% AE%80% E4% BB%8 B)