目录搜索
GuidesgitattributesgiteverydaygitglossarygitignoregitmodulesgitrevisionsgittutorialgitworkflowsAdministrationgit archivegit bundlegit cleangit filter-branchgit fsckgit gcgit instawebgit reflogBasic Snapshottinggit addgit commitgit diffgit mvgit resetgit rmgit statusBranching and Merginggit branchgit checkoutgit loggit mergegit mergetoolgit stashgit tagDebugginggit bisectgit blamegit grepEmailgit amgit format-patchgit request-pullgit send-emailExternal Systemsgit fast-importgit svnGetting and Creating Projectsgit clonegit initGitgit annotategit archimportgit bisect-lk2009git check-attrgit check-mailmapgit check-ref-formatgit checkout-indexgit cherrygit citoolgit columngit credentialgit credential-cachegit credential-storegit cvsexportcommitgit cvsimportgit cvsservergit diff-filesgit diff-treegit difftoolgit fast-exportgit fetch-packgit fmt-merge-msggit get-tar-commit-idgit guigit http-backendgit http-fetchgit http-pushgit imap-sendgit index-packgit interpret-trailersgit ls-remotegit ls-treegit mailinfogit mailsplitgit merge-filegit merge-indexgit merge-one-filegit merge-treegit mktaggit mktreegit name-revgit notesgit p4git pack-objectsgit pack-redundantgit pack-refsgit parse-remotegit patch-idgit prunegit prune-packedgit quiltimportgit receive-packgit remote-extgit remote-fdgit remote-testgitgit repackgit replacegit rereregit send-packgit sh-i18ngit sh-setupgit shellgit show-branchgit show-indexgit stripspacegit unpack-filegit unpack-objectsgit upload-archivegit upload-packgit vargit verify-commitgit verify-taggit whatchangedgit worktreeInspection and Comparisongit describegit shortloggit showMiscellaneousapi credentialsapi indexgitcligitcore tutorialgitcredentialsgitcvs migrationgitdiffcoregithooksgitkgitnamespacesgitremote helpersgitrepository layoutgitsubmodulesgittutorial 2gitwebgitweb.confpack formatUser ManualPatchinggit applygit cherry-pickgit rebasegit revertPlumbing Commandsgit cat-filegit check-ignoregit commit-treegit count-objectsgit diff-indexgit for-each-refgit hash-objectgit ls-filesgit merge-basegit read-treegit rev-listgit rev-parsegit show-refgit symbolic-refgit update-indexgit update-refgit verify-packgit write-treeServer Admingit daemongit update-server-infoSetup and Configgitgit configgit helpSharing and Updating Projectsgit fetchgit pullgit pushgit remotegit submodule
文字

名称

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

概要

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

描述

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

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

IOW,你可以使用这个东西来寻找可能的重复提交。

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

选项

--stable

使用“稳定”的哈希总和作为补丁 ID。有了这个选项:

  • 重新排序组成补丁的文件差异不会影响ID。特别是,通过将相同的两棵树与“-O <orderfile>”的两个不同设置进行比较而产生的两个补丁导致相同的补丁ID签名,从而允许计算结果用作索引关于两棵树之间的变化;

  • 结果与 git 1.9及更早版本产生的值不同,或者当配置了“unstable”散列(请参阅下面的--unstable)时产生的值 - 即使在不使用“-O <orderfile>”的情况下使用差异输出时,从而使现有数据库存储这种“不稳定”或历史补丁ID不可用。

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

--unstable

使用“unstable”散列作为修补程序ID。使用此选项,产生的结果与 git 1.9及更早版本生成的 patch-id 值兼容。预先存在的数据库存储由 git 1.9及更高版本(不涉及重新排序的补丁)生成的补丁id的用户可能需要使用此选项。

This is the default.
上一篇:下一篇: