。* .jpg二进制-delta在.gitattributes文件中做了什么?

时间:2014-07-27 06:50:27

标签: git github git-push git-commit gitattributes

This thread建议放置

*.jpg binary -delta

在git中的repos的.gitattribute文件中,但我不确定它是做什么的。我找不到任何关于' -delta'的例子。 git的标志。

目的是显着加快更大文件的提交或推送时间。

1 个答案:

答案 0 :(得分:6)

这可能与:

有关

包装物品

delta
  

对于属性delta设置为false的路径,不会尝试对blob进行增量压缩。

我详细介绍了" Is the git binary diff algorithm (delta storage) standardized?"。

中的增量存储空间

默认情况下,二进制文件没有设置,因为:

  

我们最初预期的目标受众是使用git作为源代码控制系统的人。

Jeff King adds

  

我在我的一个存储库中增加了jpgs。如果exif元数据更改但图像数据不更改,则此选项很有用。我假设您可以使用其他具有压缩和未压缩部分的格式(我也使用视频容器)。我不认为尝试使用delta gzip或者bzip的内容是有意义的。

     

我也没有使用" binary",因为我使用的是自定义差异驱动程序(二进制)   暗示" -diff")。

     

至于什么应该是默认值,到目前为止默认值一直是默认情况下没有定义gitattributes。这很好,因为它易于理解; git并不关心文件名,除非你告诉   显而易见的缺点是,如果没有额外的配置,它可能无法针对某些异常工作负载进行最佳性能。

.gitattributes man page提及:

  

将文件标记为二进制文件的最简单方法是取消设置.gitattributes文件中的diff属性:

*.ps -diff
  

这将导致Git生成二进制文件不同(或二进制补丁,如果启用了二进制补丁)而不是常规差异。

所以,是的"设置" binary"属性也取消了" text"和" diff"属性如上所述",但杰夫说它在他的情况下仅使用-diff,这足以将文件作为二进制文件。