我是靠谱客的博主 冷艳跳跳糖,最近开发中收集的这篇文章主要介绍如何理解git的快照?什么是快照快照怎么进行git和CVS,、Subversion等的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如何理解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

CVS, Subversion

本文参考:

. git
. quoar

最后

以上就是冷艳跳跳糖为你收集整理的如何理解git的快照?什么是快照快照怎么进行git和CVS,、Subversion等的区别的全部内容,希望文章能够帮你解决如何理解git的快照?什么是快照快照怎么进行git和CVS,、Subversion等的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部