简体中文 ▾ 主题 ▾ 最新版本 ▾ git-patch-id 上次更新于 2.52.0

名称

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

概要

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

描述

从标准输入读取补丁并计算其补丁 ID。

“补丁 ID”不过是与补丁关联的文件 diff 的 SHA-1 之和,忽略行号。因此,它“相当稳定”,但同时又相当唯一,即具有相同“补丁 ID”的两个补丁几乎可以肯定相同。

此命令的主要用例是查找可能重复的提交。

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

选项

--verbatim

按照原样计算输入的补丁 ID,不去除任何空格。

如果 patchid.verbatimtrue,则这是默认设置。

--stable

使用“稳定”的哈希之和作为补丁 ID。使用此选项,

  • 构成补丁的文件 diff 的重排不会影响 ID。特别是,通过使用两个不同的 -O<orderfile> 设置比较同一棵树而产生的两个补丁会得到相同的补丁 ID 签名,从而允许将计算结果用作索引更改两个树之间一些元信息的键;

  • 结果与 git 1.9 及更早版本产生的值不同,或者当配置了“不稳定”哈希(请参阅下面的 --unstable)时产生的值不同 - 即使在使用不带任何 -O<orderfile> 的 diff 输出上使用,从而使存储此类“不稳定”或历史补丁 ID 的现有数据库无法使用。

  • 补丁中的所有空格都将被忽略,不会影响 ID。

如果 patchid.stable 设置为 true,则这是默认设置。

--unstable

使用“不稳定”哈希作为补丁 ID。使用此选项,生成的结果与 git 1.9 及更早版本生成的补丁 ID 值兼容,并且会忽略空格。拥有存储 git 1.9 及更早版本生成的补丁 ID 的预先存在的数据库(不处理重排的补丁)的用户可能希望使用此选项。

这是默认设置。

GIT

Git[1] 套件的一部分