概述
如何理解git的快照?
- 什么是快照
- 快照怎么进行
- git和CVS,、Subversion等的区别
最近开始学习git的使用,发现snapshot这个术语,看得是朦朦胧胧,感觉理解这个词,又感觉不是很懂,所以就去网上搜索资料,尝试用自己的理解叙述出来。
什么是快照
- In computer systems, a snapshot is the state of a system at a particular point in time.
本人觉得快照并没含有’速度快’的意思。快照应该理解为整个系统或者应用在某个时刻的状态记录。例如,假定在A时刻,你的git工作空间分别有file1和file2,到B时刻的时候,你对file1进行了修改。
随后,在你准备进行一次commit之前,git就已经准备好快照了,这个快照记录了当前工作空间中指向未修改文件file2的指针和已经修改的file2数据(即当前时刻工作空间的文件数据状态)。因此,commit的时候,就等同于保存了一次快照。
快照怎么进行
git会读取当前工作空间的所有数据,进行数据预存,再重新调整。它会和上一次的快照版本的内容进行比较,对于没有改变的文件数据,git会把当前预存中冗余文件的数据去除掉,改为保留指向上一个版本中该文件数据的指针,对于有差异的文件数据就会保留下来,最终再把数据完整保存下来,这才算是执行了一次快照。
git和CVS,、Subversion等的区别
两者的差异在于对待保存数据的方式。前者是记录和组装一系列快照流的微型系统,关心文件数据的整体是否发生变化。每次commit的时候保存一次快照,而每个快照都包含了完整的数据;后者则关心文件内容的具体差异。第一次保存了完整的数据,往后每次保存的都不是完整的数据,只会记录基于之前的版本和现在两者的变化信息,对于此外没有变化的都不会去记录。
本文参考:
. git
. quoar
最后
以上就是冷艳跳跳糖为你收集整理的如何理解git的快照?什么是快照快照怎么进行git和CVS,、Subversion等的区别的全部内容,希望文章能够帮你解决如何理解git的快照?什么是快照快照怎么进行git和CVS,、Subversion等的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复