如何理解git的快照?


最近开始学习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等的区别

两者的差异在于对待保存数据的方式。前者是记录和组装一系列快照流的微型系统,关心文件数据的整体是否发生变化。每次

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值