git有日志压缩的概念吗?

git有日志压缩的概念吗?,git,stream-compaction,Git,Stream Compaction,是一种分布式日志(在概念上与一致性协议有一些相似之处) Raft和其他一些系统有一个概念,所以新客户不需要遍历整个变更集来应用变更 我的问题是:git有日志压缩的概念吗? 新客户端不需要遍历整个更改集来应用更改 不,git是快照的集合(工作树的完整副本)。 在git中访问提交时,不必遍历所有日志或历史来构建其内容 请参阅“”:内部存储确实使用了(即“压缩”的形式,而不仅仅是“日志压缩”),但每个提交仍然表示完整的工作树 每次您提交或在Git中保存项目状态时,它基本上会拍下您的所有文件当时的样子

是一种分布式日志(在概念上与一致性协议有一些相似之处)

Raft和其他一些系统有一个概念,所以新客户不需要遍历整个变更集来应用变更

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

新客户端不需要遍历整个更改集来应用更改

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

请参阅“”:内部存储确实使用了(即“压缩”的形式,而不仅仅是“日志压缩”),但每个提交仍然表示完整的工作树

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


Git不使用更改日志,因此不需要对日志进行压缩。但是你可以制作浅层克隆,在过去几年中没有提交。但是如果你需要一个完整的克隆,最好是制作一个,而不是深化一个浅层克隆。你能“压缩”删除的文件吗?那么删除的文件会保留在更改集中吗?或者你能“记录压缩”它们吗?@hawkeye不,删除的文件不再是当前提交的一部分,但它们是git回购历史中过去提交的一部分。@hawkeye请记住git存储的是内容,而不是文件。如果有两个内容相同的文件,则它们的内容只存储一次。如果删除一个文件,包含该删除文件的树将被修改为不再列出该删除文件。但是内容仍然存在(被其他文件引用)。好的-有没有办法压缩日志以删除该内容?@hawkeye没有要压缩的“日志”。打包文件已压缩()。你所能做的就是用
git filter branch
()