【发布时间】:2018-03-01 01:20:00
【问题描述】:
我通常使用 gpg 密钥签署我的提交。但是,有时我需要通过电子邮件发送补丁,我使用git-format-patch 和git-send-email 来实现。但是,这会导致我的 GPG 签名从补丁中删除。我的目标是让其他人实际将补丁应用到存储库并发送它,同时保留我的签名以确保代码的真实性。
通过使用git-am,提交者正在创建一个新的哈希,因此是新的提交所以我不确定签名是否会起作用我不确定 gpg 用于签名的内容是什么,也许只有差异?如果是这样的话,我想这会奏效。这可能吗?
我查看了 git-format-patch 上的 git 文档,似乎有一个 --signature 选项,该选项的文档记录不是很好,我尝试做一些事情来为补丁附加签名,但没有一个他们幸存到目标 git 存储库中。正确的使用方法是什么?
最后,即使添加--signature 实现了我想要实现的目标,但在创建一系列补丁并通过电子邮件发送它们时可能会很麻烦。是否有一个批处理选项可以简单地将签名附加到使用git cat-file -p <HASH> 的提交上,我可以清楚地看到该签名附加到使用git-format-patch 生成的补丁上?
谢谢
【问题讨论】:
-
我读过那篇文章,(确实是第一次搜索时弹出的文章之一)。然而,这篇文章采用了与我一直试图实现的完全相反的方法。如果您是项目的贡献者,您可以清楚地看到作者不支持使用 GPG 密钥签名。他建议使用
Signed-off-by:,这并没有真正做同样的事情。它在 gnu/linux 内核贡献者中很流行,但没有被广泛使用。无论如何,我的目标不是添加Signed-off-by,而是实际使用gpg签名。 -
我尝试了一些 gpg 测试。我认为
git am保留签名是不合理的。签名是使用私钥进行的。如果其他人使用您的补丁运行git am,则会创建一个新的提交对象。这个对象不是你创建的,所以它有你的签名是不合理的。您的私钥没有泄露,因此新对象的创建者无法使用您的私钥进行签名。
标签: git github gnupg gpg-signature