git是否有日志压缩的概念?

时间:2016-05-07 01:58:49

标签: git stream-compaction

git version control system是一种分布式日志(与raft共识协议有一些概念上的相似之处)。

Raft和其他一些系统都有log compaction的概念,因此新客户不需要遍历整个更改集来应用更改。

我的问题是: git是否有日志压缩的概念?

1 个答案:

答案 0 :(得分:1)

  

新客户不需要遍历整个更改集以应用更改。

不,git是快照的集合(工作树的完整副本) 当您在git中访问提交时,您不必遍历所有日志或历史记录来构建其内容。

请参阅" How does git store files?":内部存储空间确实使用delta in pack files(这是"压缩"的形式,而不仅仅是"日志压缩& #34;),但每个提交仍然代表完整的工作树。

http://i.stack.imgur.com/AQ5TG.png

  

每次你在Git中提交或保存项目状态时,它基本上都会记录当时所有文件的样子并存储对该快照的引用。
  为了提高效率,如果文件没有改变,Git不会再次存储文件 - 只是指向它已存储的上一个相同文件的链接。