【问题标题】:What does "*.jpg binary -delta" do in the .gitattributes file?.gitattributes 文件中的“*.jpg binary -delta”有什么作用?
【发布时间】:2014-09-18 15:48:44
【问题描述】:

This thread 建议放置

*.jpg binary -delta

.gitattribute git 中的repos 文件中,但我不确定它的作用。我找不到 git 的“-delta”标志的任何示例。

其目的显然是加快较大文件的提交或推送时间。

【问题讨论】:

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


    【解决方案1】:

    这可能与:

    包装对象

    delta
    

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

    我在“Is the git binary diff algorithm (delta storage) standardized?”中详细介绍了增量存储。

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

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

    Jeff King adds:

    我在我的一个存储库中 delta jpgs。如果 exif 元数据发生更改但图像数据没有更改,这很有用。我假设您可以对具有压缩和未压缩部分的其他格式执行相同的操作(我也对视频容器执行此操作)。我认为尝试 delta gzip'd 或 bzip'd 内容是没有意义的。

    我也不使用“binary”,因为我使用的是自定义差异驱动程序(二进制 表示“-diff”)。

    至于什么应该是默认的,直到现在默认的一直是默认不定义git属性。这很好,因为它很容易理解; git 不关心文件名,除非你告诉它
    明显的缺点是,如果没有额外的配置,它可能无法在一些不寻常的工作负载上发挥最佳性能。

    .gitattributes man page 提到:

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

    *.ps -diff
    

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

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

    【讨论】:

    • 那么 *.jpg binary -delta 意味着这会将 delta 设置为 false。它不是说“delta = false”或类似的。编辑:我很愚蠢。在文档中,该标志正是设置它执行您所说的操作的原因。
    • @IamPolaris 是的,-delta.gitattributes 文件中用于将其设置为“假”的语法
    • binary-diff 的快捷方式?
    • 来自文档:Setting the "binary" attribute also unsets the "text" and "diff" attributes as above.
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 2022-11-29
    • 2014-02-23
    • 2019-11-08
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多