设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
-
2.52.0
2025-11-17
- 2.51.2 无变更
-
2.51.1
2025-10-15
- 2.39.1 → 2.51.0 无更改
-
2.39.0
2022-12-12
- 2.15.4 → 2.38.5 无更改
- 2.14.6 无更改
- 2.7.6 → 2.13.7 无更改
-
2.6.7
2017-05-05
- 2.2.3 → 2.5.6 无更改
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
描述
从标准输入读取补丁并计算其补丁 ID。
“补丁 ID”不过是与补丁关联的文件 diff 的 SHA-1 之和,忽略行号。因此,它“相当稳定”,但同时又相当唯一,即具有相同“补丁 ID”的两个补丁几乎可以肯定相同。
此命令的主要用例是查找可能重复的提交。
当处理 git diff-tree 输出时,它利用补丁前缀是提交的对象名称这一事实,并输出两个 40 字节的十六进制字符串。第一个字符串是补丁 ID,第二个字符串是提交 ID。这可用于从补丁 ID 创建到提交 ID 的映射。
选项
--verbatim-
按照原样计算输入的补丁 ID,不去除任何空格。
如果
patchid.verbatim为true,则这是默认设置。 --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 的预先存在的数据库(不处理重排的补丁)的用户可能希望使用此选项。
这是默认设置。