首页 > 解决方案 > 为什么 github 的提交不显示“已验证”(签名提交)?

问题描述

通过设置 gpg 密钥,我从本地仓库获得了 git 提交,以在 github 上显示“已验证”。

但是为什么我的 github 提交(当我在 github 上时)没有显示为“已验证”?它什么也没显示,表明 github 将它们视为未经验证的提交。这是预期的还是我需要在 github 上配置一些东西?

谢谢。

标签: gitgithubgnupggpg-signature

解决方案


在 2020 年秋季的某个时候,可能在 10 月 1 日至 20 日之间,GitHub 改变了他们处理 GPG 密钥提交验证 rebase 的方式,其中仅COMMITTER_DATE更改了 git。

所以这是我非常正常的用例流程:

  1. 我在一个尚未发布的功能的提交中发现了一个非常小的问题。
  2. 我提交它,然后重新调整临时修复提交。
  3. 因为已经过去了超过 1 天,所以 github 会将我的原始文件活动报告为今天发生。
  4. 我通过这样做来解决这个问题git rebase --committer-date-is-author-date <HASH>,它将 GitHub 文件修改日期重置为提交的日期时间,而不是今天/现在。

在 10 月 20 日之前,我在 8 年多的时间里执行这些步骤从未遇到过问题。

现在,突然之间,GitHub 将所有在这个 rebase 中的提交显示为未经验证:

在此处输入图像描述

您可以在https://github.com/hopeseekr/BashScripts/commits/fucked_up_gpg_verifications亲自查看

报错了吗?“没有用户与提交者电子邮件相关联。”,这显然是荒谬的,因为所有提交共享相同的电子邮件地址,并且它是帐户上的主要地址。


推荐阅读