Git
简体中文 ▾ Topics ▾ Latest version ▾ git-patch-id last updated in 2.39.0

名称

git-patch-id - 计算补丁的唯一 ID

概述

git patch-id [--stable | --unstable | --verbatim]

描述

从标准输入读取一个补丁,并计算出它的补丁 ID。

"补丁ID" 只不过是一个与补丁相关的文件差异的 SHA-1 之和,行号被忽略。 因此,它是 "相当稳定的",但同时也是相当独特的,也就是说,两个具有相同 "补丁ID" 的补丁几乎可以保证是同一个东西。

这个命令的主要用途是寻找可能的重复提交。

在处理 git diff-tree 输出时,它利用了补丁的前缀是提交的对象名称这一事实,并输出两个 40 字节的十六进制字符串。 第一个字符串是补丁的 ID,第二个字符串是提交的 ID。 这可以用来做一个从补丁ID 到提交 ID 的映射。

选项

--verbatim

计算输入的补丁 ID,因为它是给定的,不要剥离任何空白字符。

如果 patchid.verbatim 为真,这是默认的。
--stable

使用一个 "稳定的" 哈希值之和作为补丁 ID。有了这个选项:

  • 对组成补丁的文件差异进行重新排序并不影响 ID。 特别是,用两个不同的 "-O<顺序文件>" 设置比较相同的两棵目录树所产生的两个补丁,会产生相同的补丁 ID 签名,从而允许计算结果被用作索引两个树之间变化的一些元信息的关键;

  • 结果与 git 1.9 及更早版本产生的值不同,或者在配置了 "不稳定" 哈希值(见下文 --unstable)时产生的值不同——即使在没有使用 "-O<orderfile>" 的情况下用于 diff 输出,从而使存储这种 "不稳定“或历史补丁标识的现有数据库无法使用。

  • 补丁中的所有空白都将被忽略,并且不影响 id。

    如果 patchid.stable 设置为 true,则默认使用此值。
--unstable

使用 “不稳定” 哈希值作为补丁 ID。有了这个选项,产生的结果与 git 1.9 及更早版本产生的补丁 ID 值兼容,空白被忽略。 如果您的数据库中已有 git 1.9 及更早版本产生的补丁标识(不处理重新排序的补丁),可能需要使用此选项。

这是默认设置。

GIT

属于 git[1] 文档

scroll-to-top