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

Iam*_*ris 2 git github git-push git-commit gitattributes

这个帖子暗示放置

*.jpg binary -delta
Run Code Online (Sandbox Code Playgroud)

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

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

Von*_*onC 6

这可能与:

包装物

delta
Run Code Online (Sandbox Code Playgroud)

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

我在" git二进制差分算法(增量存储)是否标准化? "中详细说明了增量存储.

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

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

杰夫金补充道:

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

我也不使用" binary",因为我使用自定义差异驱动程序(二进制意味着" -diff").

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

.gitattributes手册页提到:

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

*.ps -diff
Run Code Online (Sandbox Code Playgroud)

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

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